如何自动关闭XML中的空元素?

时间:2014-12-10 07:16:34

标签: xml xslt xslt-1.0 xslt-2.0

我正在使用XML(我是XML中的普通文档)文档,其中我想自动关闭所有空元素,例如:

来自

<colgroup>
    <col class="Row-Column-1">
    <col class="Row-Column-2">
    <col class="Row-Column-3">
    <col class="Row-Column-4">
</colgroup>

<colgroup>
    <col class="Row-Column-1"/>
    <col class="Row-Column-2"/>
    <col class="Row-Column-3"/>
    <col class="Row-Column-4"/>
</colgroup>

任何人都可以建议使用任何方式或任何命令行工具来执行此操作,例如&#34; 整洁&#34;。

提前致谢!

2 个答案:

答案 0 :(得分:1)

作为源XML的“from”部分不是有效的XML。所以你正在尝试将无效的xml转换为有效的xml。

由于XSLT主要用于将有效的xml转换为其他类似的东西(如XML,HTML,Text),因此目前您正在通过XSLT尝试这些内容。

您可以做的是以某种编程语言以字符串格式读取数据并相应地进行更改。

答案 1 :(得分:0)

我建议您的问题标签(xml xslt xslt-1.0 xslt-2.0)是错误的,您应该用Perl标记您的问题 - 您选择的修复语言 - 因为目前您只需要XML / XSLT答案,而您的源文件甚至不是XML。

无论您选择何种语言,都可以搜索并替换&#34;&gt;到&#34; /&gt;会做的伎俩。如果序列&#34;&gt;发生在文档的其他地方,您需要进行正则表达式搜索和替换。像

这样的东西

搜索字词:

(<col class="Row-Column-[0-9]+)(">)

替换术语:

\$1"/>

至少,这是我在IntelliJ中所做的,它支持regexp搜索和替换。