c# – 使用XPATH访问XML元素(已经是:学习xpath的好教程)
发布时间:2020-12-15 06:44:17 所属栏目:百科 来源:网络整理
导读:我正在尝试学习XPath.这个理论似乎非常简单,除了它不起作用. 我正在尝试获取每个目标元素的内容 XPathDocument doc = new XPathDocument(sPath);XPathNavigator nav = doc.CreateNavigator();XPathExpression expr;expr = nav.Compile("/doc/file/body/trans
我正在尝试学习XPath.这个理论似乎非常简单,除了它不起作用.
我正在尝试获取每个目标元素的内容 XPathDocument doc = new XPathDocument(sPath); XPathNavigator nav = doc.CreateNavigator(); XPathExpression expr; expr = nav.Compile("/doc/file/body/trans-unit/target"); XPathNodeIterator iterator = nav.Select(expr); while (iterator.MoveNext()) { XPathNavigator nav2 = iterator.Current.Clone(); sbDoc.Append(nav2.InnerXml); } XML文档如下所示: <?xml version="1.0" encoding="UTF-8"?> <doc version="1.2"> <file original="affiliate.php" source-language="EN-US" target-language="FR-FR" datatype="php"> <header> <skl> <external-file href="affiliate.php"/> </skl> </header> <body> <trans-unit id="tu1"> <source xml:lang="EN-US">Your Program Details</source> <target xml:lang="FR-FR">Your Program Details</target> </trans-unit> <trans-unit id="tu2"> <source xml:lang="EN-US">Status</source> <target xml:lang="FR-FR">Status</target> </trans-unit> 这几乎是一个教程中的单词,但我不能让它工作.当迭代器被创建时,在调试模式下,我可以看到文档被加载,但是迭代器没有找到结果并跳过While循环. 我可能在做一些非常愚蠢的事情,但是什么呢? 任何人都知道我可以在哪里找到一个好的,可靠的XPATH教程? 感谢所有原来我忽略了一个事实,即有一个命名空间(我在简化XML代码的同时删除,因为我没有意识到这一点很重要),并且添加了一个命名空间管理器,代码工作正常. 我正在研究提出的XPATH教程,他们看起来不错. 解决方法
也许XML不是你发布的,而是默认的命名空间声明.这就是为什么XPath表达式由初学者编写的主要原因不能选择他们想要选择的内容.在这种情况下,您将需要一个XmlNamespaceManager
http://msdn.microsoft.com/en-us/library/6k4x060d.aspx.
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |