我尝试使用XMLStarlet选择元素数据,但我无法这样做......
我能够选择属性但不能选择元素,而且我不确定我做错了什么:
sample.xml
:
<Response xmlns:r="http://test1" xmlns:c="http://test2"
<r:UniqueIDList>
<c:UniqueID type="INTERNAL">123456789</c:UniqueID>
<c:UniqueID type="INTERNAL" source="ID">987654321</c:UniqueID>
</r:UniqueIDList>
代码i用于提取
xml sel -N c="http://test2" -N r="http://test1" -t -m "//r:UniqueIDList/c:*" -v @type -n sample.xml
我将收到INTERNAL INTERNAL,但无法弄清楚如何选择实际的UniqueID
预期产量: 123456789 987654321
理想情况下,我只希望看到第一个......
非常感谢任何帮助。
经过进一步测试后,我设法实现这一目标......
xml sel -N c="http://test2" -N r="http://test1" -t -v "//r:UniqueIDList/c:UniqueID sample.xml
工作正常。
您能否建议是否可以提取仅第一个值?
答案 0 :(得分:2)
所以我设法弄明白了......
不确定这是否正确,但可以使用以下方法实现:
xml sel -N c="http://test2" -N r="http://test1" -t -v "//r:UniqueIDList/c:UniqueID[position()=1]" sample.xml