gpt4 book ai didi

c# - 使用 System.Xml.XmlDocument 时是否可以从 System.Xml.XmlNode 获取行号/位置?

转载 作者:数据小太阳 更新时间:2023-10-29 02:13:50 24 4
gpt4 key购买 nike

标题说明了一切......

在使用 System.Xml.XmlDocument 时是否可以从 System.Xml.XmlNode 获取行号/位置?

我需要这些信息,以便我可以通知用户他们需要在 Xml 文件中的何处查找特定信息。我在 SO 上看到过与 XmlReader 相关的类似问题,但没有任何内容能真正回答我的问题。

我想我可以在 xml 文件中搜索我感兴趣的节点的 OuterXml,但这似乎很麻烦,如果该信息多次出现在文件中怎么办?一定有更好的方法吗?

更新:我正在使用以下方法加载我的 xml 文件:

xmlDoc = new XmlDocument();
xmlDoc.PreserveWhitespace = true;
xmlDoc.Load(filename);

最佳答案

我不确定这是否会对某人有所帮助,但我的目标与 OP 相似。在我的特定情况下,我有一个 XmlDocument,我需要有所有文本框节点的行号。由于我遇到了 MadSkunk 描述的相同异常,我认为唯一的办法是创建一个 XPathDocument 实例并进行转换。

Richard Schneider 的回答帮助我形象化了这一点。所以我目前的方法是这样的:

public Dictionary<int, string> GetLineNumber()
{
Dictionary<int, string> attrByLineNumber = new Dictionary<int, string>();
MemoryStream xmlStream = new MemoryStream();
_xmlDoc.Save(xmlStream);
xmlStream.Position = 0;
XPathDocument pathDocument = new XPathDocument(xmlStream);
foreach (XPathNavigator element in pathDocument.CreateNavigator().Select("//*"))
{
if (element.Name.Equals("Textbox"))
{
attrByLineNumber.Add(((IXmlLineInfo)element).LineNumber, element.GetAttribute("Name", ""));
}
}
return attrByLineNumber;
}

关于c# - 使用 System.Xml.XmlDocument 时是否可以从 System.Xml.XmlNode 获取行号/位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21503673/

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