gpt4 book ai didi

c# - 如何从 XmlElement 或 XPathNavigator 获取行号

转载 作者:行者123 更新时间:2023-11-30 22:05:09 31 4
gpt4 key购买 nike

我尝试从 XmlNode(它是一个 XmlElement)获取行号,但它不能转换为 IXmlLineInfo。所以我尝试使用 XPathNavigator,但它也不起作用。

如何获取它的行号?

最佳答案

在 XPathDocument 上使用 XPathNavigator 对我来说效果很好,片段

    XPathDocument doc = new XPathDocument("XMLFile1.xml");
foreach (XPathNavigator element in doc.CreateNavigator().Select("//*"))
{
Console.WriteLine("Element {0} at line {1}.", element.Name, (IXmlLineInfo)element != null ? ((IXmlLineInfo)element).LineNumber : 0);
}

对于文件

<?xml version="1.0" encoding="utf-8" ?>
<root>
<foo>3</foo>
<foo>4</foo>
</root>

输出

Element root at line 2.
Element foo at line 3.
Element foo at line 4.

我认为对于 XmlDocument,您需要扩展 DOM 实现。如果你想操作 XML 文档,那么现在在 .NET 世界中我会使用 XDocument/XElement,在那里你可以设置加载选项以确保你获得 IXmlLineInfo,请参阅 http://msdn.microsoft.com/en-us/library/bb538371%28v=vs.110%29.aspxhttp://msdn.microsoft.com/en-us/library/system.xml.linq.loadoptions%28v=vs.110%29.aspx .

关于c# - 如何从 XmlElement 或 XPathNavigator 获取行号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24555976/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com