1

xmlstar 遇到问题。它删除了空标签,如何禁用它?

输入:

<tag1>test1</tag1>
<tag3></tag3>
<tag4>test3</tag4>

输出:

<tag1>test1</tag1>
<tag3/>
<tag4>test3</tag4>

而且我想要相同的输出,所以不会删除结束引号。

希望有人能快速回答。

4

2 回答 2

2

在 XML 中,<a></a><a/>(注意/)在语义上是相同的。无论应用程序正在使用该文档,都不应关心此更改。

我对 xmlstarlet 一无所知,但如果它的序列化程序没有选项来生成更详细的表单,您可能需要对文档进行后处理。

如果你绝对需要以前的版本,你有四个选择:找到一个 XML 序列化器,它会以那种形式写出空元素(你正在使用的那个可能有也可能没有一个选项),修改一个 XML 序列化器来写以这种形式删除空元素,编写您自己的 XML 序列化程序(不推荐;这不是很困难,但如果您问这个问题,有些细节会给您带来麻烦),或者在写出文本后对文本进行后处理以更改所有实例的<a></a><a/>

其实还有一种可能。如果您的其他程序需要长格式的原因是因为它需要 HTML,那么您应该使用 HTML 序列化程序而不是 XML 序列化程序。

于 2014-01-09T14:09:28.127 回答
0

我知道是一样的。但是我需要的原因是那里的工具应该reed,它不支持这种xml格式。它需要结束标签。

所以我会对任何有想法的人感兴趣。

文件的标题是。所以它绝对是读取文件的工具。

<?xml version="1.0" encoding="iso-8859-1"?>

<project>
  <fileVersion>2</fileVersion>
  <configuration>
    <name>Debug</name>
    <toolchain>
      <name>ARM</name>
    </toolchain>
于 2014-01-10T06:39:50.317 回答