0

需要一些帮助。我在 SSIS 中使用 XML 任务。

在下面的示例中,我试图找到所有价格 >20 的书籍的 ID。
如果我使用//book[price > '20']/self::*/attribute::id我能够得到像 bk101bk108bk109. 我怎样才能得到解决方案

bk101
bk108
bk109

有什么办法可以解决这个问题?有没有比我尝试的更好的方法来获得结果?XML 任务中的 Xpath 操作设置为“Values”

<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

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 回答
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 回答