C#如何读取XML节点的注释内容

admin 百科 13
在C#中读取XML注释需用XmlDocument或XDocument,启用注释支持(默认开启),通过SelectNodes("//comment()")或OfType()获取,再用Value属性提取文本,注意父节点关系以定位上下文。

C#如何读取XML节点的注释内容-第1张图片-佛山资讯网

在C#中读取XML节点的注释内容,关键在于使用支持注释节点(XmlComment)的解析器,比如 XmlDocumentXDocument。默认情况下,很多XML读取方式会跳过注释,必须显式启用或正确遍历才能获取。

使用 XmlDocument 读取注释节点

XmlDocument 默认会将注释作为 XmlComment 类型的节点保留在DOM中,但需注意:注释必须位于元素内部或同级位置,且加载时不能设置 XmlReaderSettings.IgnoreComments = true(默认为 false,所以通常没问题)。

  • SelectNodes("//comment()") 可选取文档中所有注释节点
  • ChildNodes 遍历时,检查 NodeType == XmlNodeType.Comment
  • Value 属性即为注释文本(不含 <!---->

示例:



  <!-- 全局配置说明 -->
  
    <!-- 这是第一个条目 -->
    data

代码读取:

var doc = new XmlDocument();
doc.LoadXml(xmlString);
<p>// 获取所有注释节点
var comments = doc.SelectNodes("//comment()");
foreach (XmlNode c in comments)
{
Console.WriteLine(c.Value); // 输出:"全局配置说明"、"这是第一个条目"
}</p><p>// 或遍历子节点找注释
foreach (XmlNode node in doc.DocumentElement.ChildNodes)
{
if (node.NodeType == XmlNodeType.Comment)
{
Console.WriteLine($"注释: {node.Value}");
}
}

登录后复制

使用 XDocument(LINQ to XML)读取注释

XDocument 同样保留注释,但节点类型是 XComment,需用 DescendantNodes()Nodes() 并筛选。

标签: node 工具 常见问题 c#

发布评论 0条评论)

还木有评论哦,快来抢沙发吧~