Bạn có thể sử dụng kết hợp existsNode
và extract
các chức năng như sau.
SELECT b.SOFT_ATTRIBUTES,
CASE
WHEN existsNode (a.soft_attributes ,'/*/'
||b.SOFT_ATTRIBUTES) = 1
THEN a.soft_attributes.extract('/*/'
||b.SOFT_ATTRIBUTES
||'/text()').getStringVal()
END value
FROM xml_analysis a,
xml_softattributes b
WHERE a.id = b.id;
*
được sử dụng như một ký tự đại diện để khớp với bất kỳ nút con nào. Ví dụ:/ PO / * / STREET khớp với bất kỳ phần tử đường phố nào là cháu của phần tử PO.
Đầu ra:
attr1 ABC
attr2 XYZ
attr3 PQR