繁体   English   中英

VB.NET:XPath问题

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM