2016-08-09 10 views
1

属性が「真」であるノードから値だけを取得する必要があります。ここでは、私が持っているものと私は必要なものだ - 任意の助けに感謝:VBA EXCEL(VBA DOM)XMLに特定の属性を持つノードからの値のみを取得する方法。

<AudioTracks> 
     <original available="true">ENG</original> 
     <localized available="false">SPA</localized> 
     <localized available="true">POR</localized> 
    </AudioTracks> 

ここに私のコードは、それはすべての値を取得しますが、私は唯一のENGとPOR(true)を取得するための方法を見つけるしたいと思います。私はそれを行う適切な方法を見つけることができないようです。 POR ...しかし、私はそれだけでENGを返却する必要があります; SPA;

'AudioTracks 
    Set oAudioNodes = featureNode.SelectSingleNode("videos/video/AudioTracks") 

    For i = 0 To oAudioNodes.ChildNodes.Length 
      sAudio = oAudioNodes.ChildNodes.Item(i).nodeTypedValue & ";" & sAudio 
    Next 

    sAudio = Left(sAudio, Len(sAudio) - 1) 
    ActiveSheet.Cells(intRow, colAudioTracks).Value = NullCheck(sAudio) 
    sAudio = "" 
    sRawData = "" 

これは私にENGを返しますPOR

は、あなたが私の唯一の希望だ、オビワン私を助けて。

答えて

0

ユーレカ。私はこれを実現させる方法を見つけました。美しくないが、うまくいく!私はちょうどgetAttributeプロパティを使用して小さな条件を実行しました。パラメータとして、私はちょうど属性名(この場合は "利用可能")を使用しました。ハ!美しい - 私のために。

Set oAudioNodes = featureNode.SelectSingleNode("videos/video/AudioTracks") 

    txt = "" 

    For i = 0 To oAudioNodes.ChildNodes.Length 


      txt = oAudioNodes.ChildNodes.Item(i).getAttribute("available") 

If txt = "true" Then sAudio = oAudioNodes.ChildNodes.Item(i).nodeTypedValue & ";" & sAudio 

    Next 

    sAudio = Left(sAudio, Len(sAudio) - 1) 
    ActiveSheet.Cells(intRow, colAudioTracks).Value = NullCheck(sAudio) 
    sAudio = "" 
    sRawData = "" 
    txt = "" 
関連する問題