【发布时间】:2017-11-10 10:08:15
【问题描述】:
请求的输出应该如下:
<Consignment id="123" date="2017-06-08">
<Box id="321" />
</Consignment>
<box> 标签应该像上面那样自动关闭。
我正在使用以下代码:
SELECT XMLELEMENT( "Consignment", XMLATTRIBUTES('123' AS "id",sysdate AS "date" ),
XMLELEMENT( "Box", xmlattributes( '321' as "id" ))
).getstringval() as xxx FROM DUAL;
但它总是返回以下结果(标签<box> 有一个单独的结束标签</box>):
<Consignment id="123" date="2017-06-08">
<Box id="321"></Box>
</Consignment>
如何让上面的<box>标签自闭?
【问题讨论】:
-
REPLACE是你的朋友:) -
<Box id="321"></Box>与<Box id="321" />相同。为什么喜欢改大纲? -
正如 Wernfried 所说,这两种格式是没有文本子元素的 Box 元素的替代序列化。任何 XML 处理器都不应该关心它收到的是哪个版本。通常,当某些下游进程尝试使用字符串操作技术(正则表达式、替换等)来操作序列化的 XML 时,通常会出现这些问题,这总是一个坏主意,通常会以眼泪结束,或者论坛上出现不必要的问题,例如堆栈溢出。
标签: xml oracle xmltype xml-generation