0

可能重复:
如何在 Java-XML 中禁用/避免与符号转义?

我需要创建类似的东西:(∧在 xml 文件中),问题是,我使用的 java 技术将它转换为∧对我不起作用的东西。我需要第一种格式。所以,问题是,有没有办法以某种方式逃避它,或者以什么方式得到它:∧?对于导出,我使用与此处相同的方法:link

4

4 回答 4

2

这是你想要的吗?

    DocumentBuilderFactory f = DocumentBuilderFactory.newInstance();
    DocumentBuilder builder = f.newDocumentBuilder();

    Document d = builder.newDocument();
    Element root = d.createElement("root");
    d.appendChild(root);
    root.setTextContent("this text contains the \u2227 character");

    Transformer t = TransformerFactory.newInstance().newTransformer();
    t.setOutputProperty(OutputKeys.ENCODING, "US-ASCII");
    t.setOutputProperty(OutputKeys.INDENT, "yes");
    t.transform(new DOMSource(d), new StreamResult(System.out));

产生

<?xml version="1.0" encoding="US-ASCII" standalone="no"?>
<root>this text contains the &#8743; character</root>
于 2012-11-06T17:14:25.640 回答
1

这样做的方法是使用&amp;. 通常它会起作用。如果它不适合您,请发布一些代码片段。

于 2012-11-06T15:29:26.373 回答
0

我认为问题在于您正在尝试手动编码 XML。

尝试:

  • 将用户输入转换为 Java 字符串
  • 让 XML 库负责从 Java 字符串到 XML 字符串的转换
于 2012-11-06T16:02:50.940 回答
0

你可以试试:

Document doc = documentBuilder.newDocument();
Element root= doc.createElement("root");
doc.appendChild(root);

Document newDoc = documentBuilder.parse(new InputSource(new StringReader("<element defaulttext=\"&#8743;\">some text or XML</element>")));

Element newElement = newDoc.getDocumentElement();
Node node = doc.importNode(newElement, true);

root.appendChild(node);
于 2012-11-07T19:00:31.257 回答