0

助けが必要です。SSIS で XML タスクを使用しています。

以下の例では、価格が 20 を超えるすべての本の ID を見つけようとしています。
を使用する//book[price > '20']/self::*/attribute::idと、 のような値を取得できます bk101bk108bk109。どうすれば次のような解決策を得ることができますか

bk101
bk108
bk109

これに対する解決策は何ですか?私が試しているよりも結果を得る良い方法はありますか? XML タスクの Xpath 操作が「値」に設定されている

<catalog>
           <book id="bk101">
              <author>Gambardella, Matthew</author>
              <title>XML Developer's Guide</title>
              <genre>Computer</genre>
              <price>44.95</price>
              <publish_date>2000-10-01</publish_date>
              <description>An in-depth look at creating applications 
              with XML.</description>
           </book>
           <book id="bk102">
              <author>Ralls, Kim</author>
              <title>Midnight Rain</title>
              <genre>Fantasy</genre>
              <price>5.95</price>
              <publish_date>2000-12-16</publish_date>
              <description>A former architect battles corporate zombies, 
              an evil sorceress, and her own childhood to become queen 
              of the world.</description>
           </book>
    </catalog>

ここに画像の説明を入力

4

3 に答える 3

0

インデックスを指定できます。

//book[price > '20'][1]/@id
//book[price > '20'][2]/@id
//book[price > '20'][3]/@id
于 2013-04-23T20:58:08.413 に答える
0

XML タスクを使用する代わりに、Foreach NodeList Enumerator を使用し、その中でスクリプト タスクを使用して値を入力できます。私はそれをやっただけでうまくいきました。

于 2013-04-26T11:29:30.850 に答える
0

1) 必要な場合 - SSIS で XML を処理する方法についてのビデオをご覧ください: http://www.youtube.com/watch?v=PXDexFNj44M

2) この xPath は、価格が 20 を超える書籍の ID を返します。

//book/price[text() > 20]/../@id
于 2013-04-29T12:55:54.360 に答える