我正在尝试解析XML以阅读一些特殊节点。然而,其中一个节点具有包含所有类型的特殊字符(包括&、〈、〉、&等)的用户注解。我无法编辑XML。
当我使用REPLACE删除其中一些时,'〈'和'〉'与节点分隔符发生冲突。
Maven们有什么建议吗?也许有一些可能的解决方案。请注意,我是一个新手,所以详细的指导将不胜感激。
1.替换所有特殊字符,包括'〈'和'〉'
1.跳过阅读任何特殊字符
1.限制我读取的数据。注解节点在XML中很低的位置,因为我只需要XML CLOB的顶部。如果有一种方法可以将XMLPARSE限制在一定数量的字符内,那么这是可行的,但不是理想的解决方案
1.使用另一个函数代替XMLPARSE。
下面是我的脚本的样子:
SELECT *
FROM TRANSACTION_DATA_TABLE tdt, trxData,
XMLTABLE
('$d/*:Request/*:AppData' PASSING XMLPARSE(DOCUMENT REPLACE(tdt.TRAN_DATA, '&', '') AS "d"
COLUMNS
FNAME CHAR(20) PATH '*:FirstName',
LNAME CHAR(20) PATH '*:LastName'
)
TIA。
1条答案
按热度按时间nhhxz33t1#
提供DDL和DML确实会有帮助,这样就可以完全处理这个问题,但这里有一些东西可能会有所帮助。你也可以在你的问题上添油加醋。
下面是一个简单的示例,说明如何返回所需的XML元素,然后从这些元素中删除一些字符-对于DB2:
DB2 fiddle
或者. use regex_replace?
Oracle fiddle(因为我不确定这是哪个db)