Xml Xpath表达式
我需要获取元素Xml Xpath表达式,xml,xpath,Xml,Xpath,我需要获取元素的值,因为元素的值为2。请更正下面给出的Xpath表达式: Xpath表达式已尝试: /colors/child::color/child::mathcolor[colorvalue='2'] <?xml version="1.0"?> <colors> <color> <mathcolor>#007dc5</mathcolor> <textcolor>C=100 M=
的值,因为元素
的值为2。请更正下面给出的Xpath表达式:
Xpath表达式已尝试:
/colors/child::color/child::mathcolor[colorvalue='2']
<?xml version="1.0"?>
<colors>
<color>
<mathcolor>#007dc5</mathcolor>
<textcolor>C=100 M=40 Y=0 K=0</textcolor>
<colorvalue>2</colorvalue>
</color>
<color>
<mathcolor>#ed1b34</mathcolor>
<textcolor>C=0 M=100 Y=85 K=0</textcolor>
<colorvalue>3</colorvalue>
</color>
</colors>
示例XML:
/colors/child::color/child::mathcolor[colorvalue='2']
<?xml version="1.0"?>
<colors>
<color>
<mathcolor>#007dc5</mathcolor>
<textcolor>C=100 M=40 Y=0 K=0</textcolor>
<colorvalue>2</colorvalue>
</color>
<color>
<mathcolor>#ed1b34</mathcolor>
<textcolor>C=0 M=100 Y=85 K=0</textcolor>
<colorvalue>3</colorvalue>
</color>
</colors>
#007dc5
C=100 M=40 Y=0 K=0
2.
#ed1b34
C=0 M=100 Y=85 K=0
3.
差不多了,试试看:
/colors/child::color[colorvalue='2']/child::mathcolor/text()
或者更简单
/colors/color[colorvalue='2']/mathcolor/text()
我更喜欢使用//mathcolor首先针对您想要的实际元素。剩下的就是说,如果继续沿着结构向下,您将看到一个名为colorvalue的同级节点,其文本节点为2
//mathcolor[./following-sibling::colorvalue[./text()='2']]
孩子::是多余的,不是吗?我更喜欢你最初的回答是的,但我想使用他问题中使用的确切示例siva2012。可能需要在结尾处添加一个
/text()
,以获得值。请考虑对你的回答添加一个解释。如果颜色的子项的顺序没有定义怎么办?也许//mathcolor[../colorvalue='2']/text()
会更稳定?我喜欢它,不确定我见过很多次子节点顺序发生变化的情况。