[英]VB.NET: XPath problem
我有以下XML:
<?xml version="1.0" encoding="utf-8" ?>
<configuracoes>
<gerais>
<atualizacoes>
<tipo>automática</tipo>
<frequencia>diária</frequencia>
</atualizacoes>
</gerais>
</configuracoes>
和代码:
Dim xPathNavigator As XPathNavigator
Dim xPathNodeIterator As XPathNodeIterator
xPathNavigator = Me.XML.CreateNavigator()
xPathNodeIterator = xPathNavigator.Select("/configuracoes/gerais/atualizacoes")
While (xPathNodeIterator.MoveNext())
Dim xPathNavigatorInterno As XPathNavigator = xPathNodeIterator.Current
MsgBox(xPathNavigatorInterno.Value) 'It Shows "automáticadiária" instead of "automática" and then "diária" in the next iteration...
End While
我想进入第一个迭代“automática”,然后进入最后一个“diária”。 怎么了? 我该如何解决? 谢谢。
尝试
/configuracoes/gerais/atualizacoes/*
节点的Value
始终是所有后代文本节点的合并值。 这类似于HTML,其中HTML的值
<div>This is some <b>bold</b> text.</div>
是"This is some bold text."
。
如果需要单个值,请显式选择单个节点。 在您的情况下,由于它们具有不同的名称,因此我使用*
。
向前发展的另一个考虑因素是使用LINQ to XML而不是XPath。 以我的经验,通过查询来使用和导航XML比像XPath那样遍历它要容易得多。 供以后参考,请看下面的链接:
Visual Basic中的LINQ to XML概述:
http://msdn.microsoft.com/en-us/library/bb384460.aspx
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.