我正在尝试编写一个xpath查询来从xml文档中提取数据。不幸的是,该文档中嵌入了一个xml片段,似乎已经丢失了它的编码(<已经变得& lt>已经变成& gt等)。
xml doc的一个例子是:
<OrderData xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Id>1</Id>
<RawData><?xml version="1.0" encoding="UTF-16"?>
<Data xmlns="nnn-mmm-com">
<Order Action="Remove" >
<Instrument InstID="1"></Order><
/Data>
</RawData>
</OrderData>
我正在尝试提取以下值: ID 行动 InstID
获取ID是没有问题的,但是在RawData内部钻取片段已经超出了我的范围。感激地收到任何指针
(我打算在Hive中使用Hive-XML-SerDe执行xpath查询,这是xpath 1.0)
由于
答案 0 :(得分:0)
使用XPath 3.1,您可以解析嵌入的XML文档并将其转换为节点树,然后您可以使用路径表达式处理该节点树。所以:
/OrderData/RawData/parse-xml(.)/*:Data/*:Instrument/@InstID
应该得到你想要的东西。
你没有说你的库支持哪个版本的XPath,这通常意味着它只支持1.0,所以你可能需要找到一个不同的库。