Запись ссылок на сущности (цитата, апостроф) в XML-файл - Java - PullRequest
1 голос
/ 15 марта 2012

Я пишу Java-программу, которая выводит XML-файл в качестве вывода.Теперь в xml есть определенные значения узлов, которые содержат ссылки на сущности, такие как <,>, 'и ". Текущий вывод выглядит примерно так:

<Parent>
  <Child>&lt;'"</Child>
</Parent>

Требуемый вывод:

<Parent>
  <Child>&lt;&apos;&quot;</Child>
</Parent>

Я прочитал в следующем посте, что, возможно, невозможно сделать то, что я хочу: StAX XML Parser не экранирует одинарную кавычку (')

Но система, которая читает этот XML-файлтребует экранирования всех кавычек и апострофов. Как я могу добиться этого?

Какой-то код:

DocumentBuilderFactory coDocFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder coDocBuilder = coDocFactory.newDocumentBuilder();
coXMLDocument = coDocBuilder.newDocument();

Element coParent = coXMLDocument.createElement("Parent");
coXMLDocument.appendChild(coParent);

Element coChild = coXMLDocument.createElement("Child");
coParent.appendChild(coChild);
coChild.setTextContent("<>/'/""); //apostrophe and quotes have been escaped

TransformerFactory coTransFactory = TransformerFactory.newInstance();
Transformer transformer = coTransFactory.newTransformer();
transformer.setOutputProperty(OutputKeys.INDENT, "yes");
DOMSource coDomSource = new DOMSource(coXMLDocument);
StreamResult coResult = new StreamResult(new File("C:\\a.xml"));
transformer.transform(coDomSource, coResult);

Помощь будет оценена.

1 Ответ

0 голосов
/ 15 марта 2012

Вы можете использовать эту библиотеку Apache , чтобы сделать это.

...