我对 XPATH 相当陌生,当某个节点等于两个值之一时,我需要从多个 XML 对象返回一个值。该解决方案还需要使用 local-name() 与命名空间无关。鉴于以下 XML,我希望返回“B”的所有值,其中“A”等于“4”或“5”。
<?xml version="1.0"?>
<element>
<A>3</A>
<B>Value 1</B>
</element>
<element>
<A>4</A>
<B>Value 2</B>
</element>
<element>
<A>5</A>
<B>Value 3</B>
</element>
我已经尝试了以下表达式的多次迭代,但是当我尝试为“A”添加第二个值时似乎无法获得正确的语法。我似乎无法弄清楚“或”表达式的正确语法。我也考虑过使用联合,但也无法正确使用该语法。
这适用于“A”等于单个值“4”但如何添加“5”值的测试,以便结果返回“B”的两个值(“值 2”和“值 3” )?
//*[local-name()='element'][*[local-name()='A']='4']/*[local-name()='B']/text()
谢谢你。任何帮助将不胜感激!