如何在xml文件中搜索任何标记的关闭标记之前的空格,并使用(IXmlLineInfo)
的{{1}}属性获取其实际位置
例如,在以下xml文件的情况下
LinePosition
输出应该像
<?xml version="1.0" encoding="utf-8"?>
<main>
<child1>anything</child1>
<child2>whatever </child1>
<pp>
<ccl>i dont know</ccl>
<ccp>1253 </ccp>
</pp>
</main>
使用Whitespace found at position 4,19
Whitespace found at position 7,14
执行此操作的最简单方法是什么?
答案 0 :(得分:1)
首要任务是找到以空格结尾的所有节点,然后通过将它们转换为IXmlLineInfo
来获取行信息,假设文档是XDocument
:
document.Descendants()
.Where(node => ((string)node).EndsWith(" "))
.Select(node => node as IXmlLineInfo);
这将为您提供包含行号和节点位置的行信息。如果你想要空间的查找线位置,你需要对这个值进行一些计算,即将节点值的长度加到行位置,你将获得空格的位置。此外,您可能需要添加节点名称的长度,包括开始和结束标记,以找到确切的位置。