JOOX自关闭XML标记

时间:2016-06-16 10:32:14

标签: java xml xml-parsing joox

使用JOOX转换XML时遇到问题。我正在对匹配fieldTag的元素进行一些更改

我的代码如下:

   Match xml = $(new StringReader(content.toString()));
        Match find = xml.find(fieldTag);
        Iterator<Element> iterator = find.iterator();
        while(iterator.hasNext()){
            Element next = iterator.next();
            String text = $(next).text();
            if(text.length() == 0) continue;

            next.setNodeValue("....");
        }

    return xml.toString();

但是,例如,输入这样的XML:

<Body>
<A>ABC</A>
<B></B>
</Body>

这就是我得到的结果:

<Body>
<A>transformed</A>
<B/>
</Body>

您可以注意到Element B是一个自封闭的XML标记。有谁知道如何让它成为<B></B ??

1 个答案:

答案 0 :(得分:1)

为什么重要?任何使用XML解析器读取结果文档的人都不会注意到这种差异,任何使用非XML解析器读取它的人都需要重新接受教育。大多数XML序列化程序都不会让您对这些细节进行任何控制,只不过它们允许您选择是否在属性值周围使用单引号或双引号。