1

次の 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」を取得したいと考えています。どうしたの?どうすればそれを解決できますか?ありがとうございました。

4

2 に答える 2

1

試す

/configuracoes/gerais/atualizacoes/*

ノードのValueは常に、すべての子孫テキスト ノードの連結値です。これは HTML に似ています。

<div>This is some <b>bold</b> text.</div>

です"This is some bold text."

個々の値が必要な場合は、個々のノードを明示的に選択します。あなたの場合、名前が異なるため、*.

于 2010-09-01T21:09:26.947 に答える
0

今後のもう 1 つの考慮事項は、XPath ではなく LINQ to XML を使用することです。私の経験では、XPath のように XML を繰り返し処理するよりも、クエリを介して XML を使用およびナビゲートする方がはるかに簡単です。今後の参考のために、以下のリンクをご覧ください。

Visual Basic での LINQ to XML の概要:
http://msdn.microsoft.com/en-us/library/bb384460.aspx

于 2010-09-03T13:02:23.137 に答える