C# 基于XPath查找XML字符串的行号

C# 基于XPath查找XML字符串的行号,c#,.net,xml,xpath,C#,.net,Xml,Xpath,我试图在包含XML的多行字符串中找到给定Xpath指向的行 换句话说,我有一个包含XML的字符串。我有一个给定的Xpath,我想用它来查找字符串的确切行号 最好的方法是什么?您可以将XML从字符串加载到实际的XML类中 XDocument x = XDocument.Parse(yourStringContainingXML); string contentOfNode = x.Descendants(XName.Get("NameOfTheNode")).First().Value; 你可以

我试图在包含XML的多行字符串中找到给定Xpath指向的行

换句话说,我有一个包含XML的字符串。我有一个给定的Xpath,我想用它来查找字符串的确切行号


最好的方法是什么?

您可以将XML从字符串加载到实际的XML类中

XDocument x = XDocument.Parse(yourStringContainingXML);
string contentOfNode = x.Descendants(XName.Get("NameOfTheNode")).First().Value;

<>你可以考虑使用一个AN。具有LineNumber和LinePosition特性的

XmlTextReader
确实有一些有限的“在到达某个节点之前读取”属性,但它们不像XPath那样复杂。根据XPath的复杂程度,这可能有效,也可能无效


我确实找到了关于这个主题的链接。

他在寻找行号而不是值。您的目标是可视化XPath选择还是用字符串连接对XML进行一些可疑的修补?您是否需要处理通用XML,或者可以强制执行XML结构(即,按照Ann L的+1回答,每行一个节点)?旁注:请避免在你的问题中使用“什么是最好的方式”,而不要定义你的“更好”标准。这不是一个坏问题:(只是缺少了“我迄今为止所尝试的”我现在有一个真正的用例,我知道某个xpath下的元素有一个bug,我想打印出行号,这样我就可以用我的编辑器快速移动到那里并修复它。