我有以下情况。这是XML:
<Detect>
<Flag>
Yes
</Flag>
<Fraud_Alert_Code>
3006
</Fraud_Alert_Code>
<Flag>
No
</Flag>
</Detect>
我使用以下查询:
xpath('//Detect/Flag/text()', response ::xml) as Flag
但它什么也不回。它适用于查询中的其他值。这里唯一的问题是:这是因为有两个根节点的名称相同吗?如果是,我如何将它们分开?
我尝试使用Flag[1]
和text[1]
以及组合使用。。但是什么都不管用。。
您的xpath查询可以工作。
xpath()
返回xml[]
(或xml array
),因此可以使用数组索引来访问每个元素。但请注意,每个元素都是一个xml
(实际上是一个内容片段,在您的案例中只包含文本节点),因此您可能需要将其强制转换为text
(或将xpath()
调用的整个结果强制转换为text[]
)以获取其文本内容。
还有:
- 不能有多个根节点;您的根元素是
Detect
- 用
//
启动xpath使查询根本不关心根元素:它将查找任何Flag
元素,它是任何Detect
元素的子元素