【问题标题】:Deleting part of an XML using PL/SQL使用 PL/SQL 删除部分 XML
【发布时间】:2021-05-13 09:00:56
【问题描述】:

我正在尝试删除 xml 文件的结尾部分并将其保存到变量中。

xml有类似这样的结构:

<what_to_delete>
    <Body_of_what_to_Delete>
        several strings of characters i want to delete
        spreaded across several lines.
    </Body_of_what_to_Delete>
</what_to_delete>

我想知道PL/SQL中是否存在一个合适的函数来实现这个请求。

类似于从“”删除到“”:

DELETE_FROM(file_to_trim, '<what_to_delete>', '</what_to_delete>');

这应该存在于多个 xml 文件中,而不仅仅是一个。另外,我要删除的内容因文件而异,因此“从'删除到''”将是最合适的方式。

【问题讨论】:

    标签: xml oracle plsql


    【解决方案1】:

    您可以使用 DELETEXML。

    UPDATE your_table
      SET your_col = deleteXML(your_col, '//what_to_delete');
    

    【讨论】:

    • 对不起,Thomas Kirchhoff 先生,我忘了提到这应该存在于几个 xml 文件中,而不仅仅是一个。此外,我要删除的内容因文件而异,因此“从 删除”将是最合适的方式。在这种情况下我们可以使用什么吗?谢谢你的回答。
    • @DiogoBasilio 该函数会删除从开始的到结束的的所有内容,即整个节点。不管中间是什么。如果要删除不同的节点,则必须相应地将函数应用于所需的结果集。否则,即使 XML 中不存在该节点,也不会发生任何事情。更新只是一个简单的例子。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多