我的问题陈述是从清单中找出没有演员的电影。
例如,我想确定"Actor1"
尚未上映的电影。
我使用的XPATH返回的所有电影中至少有一个演员除外"Actor1"
。
XPATH: //film[.//actor/name[not(text()='Actor1')]]
XML输入:
<list>
<!-- Film1 -->
<film>
<name>Film1</name>
<duration>3</duration>
<actor>
<name>Actor1</name>
<age>40</age>
</actor>
<actor>
<name>Actor2</name>
<age>30</age>
</actor>
</film>
<!-- Film2 -->
<film>
<name>Film2</name>
<duration>2</duration>
<actor>
<name>Actor3</name>
<age>34</age>
</actor>
<actor>
<name>Actor1</name>
<age>40</age>
</actor>
<actor>
<name>Actor4</name>
<age>26</age>
</actor>
</film>
<!-- Film3 -->
<film>
<name>Film3</name>
<duration>2</duration>
<actor>
<name>Actor2</name>
<age>30</age>
</actor>
<actor>
<name>Actor5</name>
<age>16</age>
</actor>
<actor>
<name>Actor6</name>
<age>5</age>
</actor>
</film>
<!-- Film4 -->
<film>
<name>Film4</name>
<duration>1</duration>
<actor>
<name>Actor1</name>
<age>40</age>
</actor>
</film>
</list>
预期:仅"Film3"
应返回的节点
实际:XPath结果
<film>
<name>Film1</name>
<duration>3</duration>
<actor>
<name>Actor1</name>
<age>40</age>
</actor>
<actor>
<name>Actor2</name>
<age>30</age>
</actor>
</film>
<film>
<name>Film2</name>
<duration>2</duration>
<actor>
<name>Actor3</name>
<age>34</age>
</actor>
<actor>
<name>Actor1</name>
<age>40</age>
</actor>
<actor>
<name>Actor4</name>
<age>26</age>
</actor>
</film>
<film>
<name>Film3</name>
<duration>2</duration>
<actor>
<name>Actor2</name>
<age>30</age>
</actor>
<actor>
<name>Actor5</name>
<age>16</age>
</actor>
<actor>
<name>Actor6</name>
<age>5</age>
</actor>
</film>
如果您的XPath“返回”film
节点至少 具有一个name
后代,而文本不是'Actor1'
。只要film
具有name
与文本后代'Actor2'
或'Actor3'
或任何你的XPath将返回该节点
尝试此操作以获得所需的输出:
//film[not(actor/name='Actor1')]
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句