0

これは私のサンプル XML ファイルです。

<Cars>
     <Make name="Maruthi">
         <Model>
             <Name>Wagnor</Name>
             <Release>2000</Release>
         </Model>
     </Make>
     <Make name="Maruthi">
         <Model>
              <Name>Swift</Name>
              <Release>2005</Release>
         </Model>
     </Make>
     <Make name="Hundai">
         <Model>
             <Name>i10</Name>
             <Release>2003</Release>
         </Model>
     </Make>
</Cars>

Make Name が Maruthi であるすべての車を取得したい (したがって、ここでは 3 台中 2 台の車を期待しています)

Set o_XML=XMLUtil.CreateXMLFromFile("E:\Programming Samples\QTP Samples\Cars.xml")
set o_ChildPath=o_XML.ChildElementsByPath("/Cars/Make/[name='Maruthi']")

ここで XMLUtil は QTP が提供するユーティリティ オブジェクトですが、問題はありません。

唯一の問題は、式の評価にあります。さまざまな式を試しましたが、「式はノードセットに評価する必要があります」というメッセージが表示されます。

誰かここで助けてくれませんか?

4

3 に答える 3

1

JAXB パーサーを使用してみませんか。車のオブジェクトのリストを取得し、「マルティ」製のすべての車を取得できます。

于 2012-09-22T07:54:38.823 に答える
1

に XPath 式を渡そうとしているように見えますChildElementsByPath。XPath を受け入れる場合 (申し訳ありませんが、私はこのツールを使用しておらず、Web でドキュメントを見つけることができません)、式を次のようにする必要があります/Cars/Make[name='Maruthi'](最後のスラッシュを削除します)。XPath を受け入れない場合は/Cars/Make、独自のコードを使用して不要な make を除外することをお勧めします。

于 2012-09-22T18:49:30.973 に答える
0

もしかしたら、XML ヘッダーが必要ですか? あなたはこれについてここで読むことができます:

有効な XML ファイルには xml ヘッダー宣言が必要です

于 2012-09-22T07:59:43.653 に答える