需要一些帮助。我在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>
答案 0 :(得分:0)
您可以指定索引:
//book[price > '20'][1]/@id
//book[price > '20'][2]/@id
//book[price > '20'][3]/@id
答案 1 :(得分:0)
而不是使用XML任务,我们可以使用Foreach NodeList Enumerator并在其中使用脚本任务 输入值。我刚刚做了它并且有效。
答案 2 :(得分:0)
1)如果您需要 - 观看此视频如何在SSIS中处理XML:http://www.youtube.com/watch?v=PXDexFNj44M
2)此xPath将返回价格大于20的图书ID:
//book/price[text() > 20]/../@id