0

皆さん....おそらく簡単な質問ですが、私は簡単な答えを見つけることができませんでした. 次の XML 構造が ASP または ASPx ページで分析されているとします。

<level1>
<Block1>
 <codes>
    <a>XS</a>
    <b>SM</b>
    <c>M</c>
    <d>L</d>
    <e>XL</e>
 </codes>
</Block1>
<Block2>
 <codes>
    <a>XP</a>
    <b>P</b>
    <c>M</c>
    <d>G</d>
    <e>XG</e>
 </codes>
</Block2>
</level1>

今では、VBS コードを使用 For each L2Element in L1.Childnodes... して、レベル、ブロック、およびコードを反復することができます。ただし、タグのテキストを取得することのみに本当に関心がある場合<c> in <Block2>、すべてのレベル、ブロック、およびコードを反復せずに直接取得するために使用できる簡単な方法はありますか?

ありがとう....RDK

4

1 に答える 1

1

XPath を使用して、必要なノードを照会できます。

Dim xmlDoc : Set xmlDoc = [your xml document here]
xmlDoc.setProperty "SelectionLanguage", "XPath"

次に、次のように必要なノードを選択できます。

Dim oNode    
Set oNode = xmlDoc.selectSingleNode("//Block2/codes/c")

から値を取得できますoNodeNothingただし、それが最初かどうかを確認することを忘れないでください。NothingoNode は、XPath クエリがターゲットを見つけられなかった場合に等しくなります。

複数のノードを選択したい場合は、selectNodes()XPathを併用する方法もあります。ノードのコレクションを返します。これには、ノードlengthを反復処理するために使用できるプロパティがあります。でコレクションの各ノードにアクセスしますitem(index)

于 2013-05-29T20:47:48.787 に答える