我有以下XML结构,需要在
中获取值<VALUE><![CDATA[PRUEBAS BPM]]></VALUE>
我需要检查两个条件:
我的XPATH实际上是这样编写的
/TRAIL/ENTITY/FIELD[NAME="dependency"]/ENTITY/FIELD[NAME="name"]/PRIMITIVE/VALUE/text()
但是,它没有带来任何数据。 我的XPATH错误地写了吗?如何在xml中理清对该信息的访问?
任何帮助都将受到高度赞赏。
这是我的XML结构
<TRAIL>
<ENTITY>
<FIELD>
<NAME>dependency</NAME>
<ENTITY>
<FIELD>
<NAME>codigo</NAME>
<PRIMITIVE>
<VALUE><![CDATA[906]]></VALUE>
</PRIMITIVE>
</FIELD>
<FIELD>
<NAME>name</NAME>
<PRIMITIVE>
<VALUE><![CDATA[PRUEBAS BPM]]></VALUE>
</PRIMITIVE>
</FIELD>
</ENTITY>
</FIELD>
</ENTITY>
</TRAIL>
提前感谢您的帮助!
作为额外的我必须添加我正在使用此XPATH直接从数据库中检索信息。 这是我的SQL语句(delta是包含XML的表的列)
SELECT XPATH('(/TRAIL/ENTITY/FIELD[NAME="dependency"]/ENTITY/FIELD[NAME="name"])/PRIMITIVE/VALUE/text()', CAST( SUBSTRING( delta FROM position('<TRAIL>' IN delta) FOR char_length(delta)) AS ml ) ) FROM aud_huella_expediente
答案 0 :(得分:1)
您的XPath是正确的(从表达式的末尾删除text()
并测试它online)。很可能您的问题来自CDATA部分,请参阅How do I retrieve element text inside CDATA markup via XPath?。
答案 1 :(得分:0)
看起来你只需要删除正确的paren:
/TRAIL/ENTITY/FIELD[NAME="dependency"]/ENTITY/FIELD[NAME="name"]/PRIMITIVE/VALUE/text()