Я хочу создать файл XML, который не нужно экранировать, если есть специальные символы - PullRequest
0 голосов
/ 15 мая 2019

Использование JDOM для генерации XML-файла, что является лучшим способом избежать экранирования символов

введите описание изображения здесь

Я пытался. Я не могу найти способ

 public class JDomCreateXml {

    public static void main(String[] args) throws IOException {

        /**根节点*/
        Element rss = new Element("rss");
        rss.setAttribute("version", "2.0");

        /**创建document对象*/
        Document document = new Document(rss);

        /**添加子节点*/
        Element channel = new Element("channel");
        rss.addContent(channel);

        Element title = new Element("titlt");
        /**设置内容*/
        title.setText("<国内最新新闻>");
        rss.addContent(title);

        /**调节显示格式,规范格式*/
        Format format = Format.getPrettyFormat();
        format.setIndent("");
        format.setEncoding("GBK");

        /**利用xmlOutputter将document生成xml*/
        XMLOutputter xmlOutputter = new XMLOutputter(format);
        xmlOutputter.output(document, new FileOutputStream(new File("jdom.xml")));
    }
}

Я хочу создать файл XML, который не нужно экранировать, если есть специальные символы

1 Ответ

3 голосов
/ 15 мая 2019

Единственный способ может быть еще более громоздким: раздел CDATA .

Для текста :

3 < 4 and 5 > 4

в

<p></p>

API-интерфейсы XML преобразуют текст автоматически в:

<p>3 &lt; 4 and 5 &gt; 4</p>

При извлечении с использованием API-интерфейса XML сущности снова будут экранированы в исходный текст.

Но с CDATA можно сделать:

   _________               ___
<p><![CDATA[3 < 4 and 5 > 4]]></p>

Используя, например, org.w3c.Element, затем добавить не Text дочерний узел, а CDATASection дочерний узел.

<[CDATA[ ... ]]> используется для необработанного текста.

...