我有以下情况。这是XML:
<Detect>
<Flag>
Yes
</Flag>
<Fraud_Alert_Code>
3006
</Fraud_Alert_Code>
<Flag>
No
</Flag>
</Detect>
我使用以下查询:
xpath('//Detect/Flag/text()', response ::xml) as Flag
但它不会返回任何东西。它适用于查询中的其他值。这里唯一的问题是:是因为有2个根节点具有相同的名称吗?如果是的话,我该如何分开它们呢?
我尝试使用Flag[1]
和text[1]
并组合使用..但没有任何作用..
答案 0 :(得分:2)
您的xpath查询works。
xpath()
会返回xml[]
(或xml array
),因此您可以使用array indexing来访问每个元素。但请注意,每个元素都是xml
(实际上是content fragment,在您的情况下只包含文本节点),因此您可能需要将其强制转换为text
(或者整个xpath()
调用text[]
)获取文字内容的结果。
此外:
Detect
//
启动xpath会使您的查询根本不关心根元素:它会找到任何Flag
元素,它是任何Detect
元素的子元素。< / LI>