Xpath新手。试图在SSIS中使用XML任务来加载一些值。使用下面提到的Microsoft的XML库存。
如何在书店/书籍中加载名字值,其中风格是新颖的并且奖励='普利策'?
我正在尝试//book[@style='novel' and ./author/award/text()='Pulitzer']
。它给出了整个元素。我应该在哪里修改才能获得名字值?
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="myfile.xsl" ?>
<bookstore specialty="novel">
<book style="autobiography">
<author>
<first-name>Joe</first-name>
<last-name>Bob</last-name>
<award>Trenton Literary Review Honorable Mention</award>
</author>
<price>12</price>
</book>
<book style="textbook">
<author>
<first-name>Mary</first-name>
<last-name>Bob</last-name>
<publication>Selected Short Stories of
<first-name>Mary</first-name>
<last-name>Bob</last-name>
</publication>
</author>
<editor>
<first-name>Britney</first-name>
<last-name>Bob</last-name>
</editor>
<price>55</price>
</book>
<magazine style="glossy" frequency="monthly">
<price>2.50</price>
<subscription price="24" per="year"/>
</magazine>
<book style="novel" id="myfave">
<author>
<first-name>Toni</first-name>
<last-name>Bob</last-name>
<degree from="Trenton U">B.A.</degree>
<degree from="Harvard">Ph.D.</degree>
<award>P</award>
<publication>Still in Trenton</publication>
<publication>Trenton Forever</publication>
</author>
<price intl="Canada" exchange="0.7">6.50</price>
<excerpt>
<p>It was a dark and stormy night.</p>
<p>But then all nights in Trenton seem dark and
stormy to someone who has gone through what
<emph>I</emph> have.</p>
<definition-list>
<term>Trenton</term>
<definition>misery</definition>
</definition-list>
</excerpt>
</book>
<my:book xmlns:my="uri:mynamespace" style="leather" price="29.50">
<my:title>Who's Who in Trenton</my:title>
<my:author>Robert Bob</my:author>
</my:book>
</bookstore>
答案 0 :(得分:8)
我得到了答案。
//book[@style='novel' and ./author/award/text()='Pulitzer']//first-name
答案 1 :(得分:5)
使用强>:
/*/book[@style='novel']/author[award = 'Pulitzer']/first-name
这会选择first-name
父有一个author
子项的任何award
元素,其字符串值为'Pulitzer'且其(author
)父项为{{{ 1}} book
属性的值为“novel”,其父级是XML文档的顶级元素。
答案 2 :(得分:1)
同一背景下的类似问题。我怎么能反过来呢?我想我想找到价格大于20的所有书籍的ID?我知道我是一个轻推,但真的想清除我的理解。
以下是必需的XPATH
:
//book/price[text() > 20]/..