xml - 在 oracle 的 XML 文档中添加命名空间

标签 xml oracle plsql namespaces

我需要在 xml 文档中添加命名空间详细信息。

我已经有了命名空间

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>

和 xml 数据在
l_xmltype :=dbms_xmldom.getXmlType(l_domdoc);

dbms_xmldom.freeDocument(l_domdoc);
dbms_output.put_line(l_xmltype.getClobVal);

l_xmltype 是没有命名空间的纯 XML。如何将命名空间与此连接 l_xmltype .请帮忙

最佳答案

如果只是

<?xml version="1.0" stadalone="yes"?>

那么你就会使用函数 XMLROOT .
XMLROOT但是不支持编码标签。您可以通过使用 XMLROOT 将“版本”的参数值为 '1.0" encoding="utf-8' 来“破解”您的方式。而不是 '1.0'如回答 here .但是不建议这样做。

如果您可以访问 oracle 支持,请阅读文档 Doc ID 1449682.1 . Oracle 建议您改为这样做 -
SELECT 
   XMLTYPE(
       '<?xml version="1.0" encoding="UTF-8" standalone="yes"?>' 
       || l_xmlvariable_or_column
       )
FROM MY_TABLE;

请记住,encoding="xxxx"在上面的语句中自动更改为客户端请求的字符集。要将其设置为 utf-8,请设置 NLS_LANG AL32UTF8 的参数.

关于xml - 在 oracle 的 XML 文档中添加命名空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29207498/

相关文章:

xml - Web 浏览器是否处理 "xmlns"属性?

oracle - pl/sql中数字的阶乘

javascript - jQuery、PL/SQL 和 IE - 不能包含生成的 javascript 代码

sql - 我写了一个触发器,但不起作用。我错过了什么吗?

c# - 在 C# 中根据 XSD 模式验证 json 数据

java - 如何将 Spinner 菜单设置为 DropDown 而不是对话框样式?

mysql - 从 Oracle CTL 迁移到 MySQL

database - 创建新的 Oracle Application Express (APEX)

Oracle PL/SQL 查询嵌套表集合和值键名

php - 使用 php 脚本将 pimcore 中的现有数据对象导出到 XML 文件