C#XML文件中的标记路径列表

我想从xml文件中获取所有元素XPath,例如xml文件,就像用Excel打开XML文件一样

  
....

我想得到

 BookStore/BookStoreInfo/Address BookStore/BookStoreInfo/Tel BookStore/BookStoreInfo/Fax BookStore/Book/@id BookStore/Book/@category BookStore/Book/BookName BookStore/Book/ISBN BookStore/Book/PublishDate 

我尝试了几种方法,但不起作用,我该怎么做?

您可以将xml加载到XmlDocument中并遍历树,直到您点击一个没有子节点的节点,然后重复播放。

快速google找到了一个示例,并在stackoverflow上找到了这个

我的方法的伪代码:

 calculateXPaths(curNode, stringSet, curString) { // This ensures only terminal nodes are counted. Remove to get all paths if (!curNode.hasChildren) { stringSet.add(curString) } foreach (attr on curNode) { stringSet.add(curString + "/@" + attr.name) } foreach (childNode on curNode) { curString = curString + "/" + childNode.name calculateXPaths(childNode, stringSet, curString) } } 

你通过调用开始整个过程

 calculateXPaths(xmlDocument.rootNode, new Set(), xmlDocument.rootNode.name)