【问题标题】:how to print double quotes in xml attribute value如何在xml属性值中打印双引号
【发布时间】:2016-01-09 05:36:40
【问题描述】:

您好,我正在使用能够生成 xml 文件的 javax.xml 解析器生成 xml 文件。但是在我的属性值中,我得到的是 &quot 而不是双引号。 如何在属性值中打印双引号。下面是我的代码

Document doc = docBuilder.newDocument();
            Element rootElement = doc.createElement("elements");
            doc.appendChild(rootElement);
            rootElement.setAttribute("area", "area");
            rootElement.setAttribute("page", "pagename");

            //element
            Element element = doc.createElement("element");
            rootElement.appendChild(element);
            element.setAttribute("key", "key");
            element.setAttribute("id", "id");
            element.setAttribute("path", "//*[@id="email"]");
            }
                    // write the content into xml file
            TransformerFactory transformerFactory = TransformerFactory.newInstance();
            Transformer transformer = transformerFactory.newTransformer();
            transformer.setOutputProperty(OutputKeys.INDENT, "yes");
            transformer.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "2");
            DOMSource source = new DOMSource(doc);
            StreamResult result = new StreamResult(new File(ApplicationContext.getPath()+File.separator+"test.xml"));

            // Output to console for testing
            // StreamResult result = new StreamResult(System.out);

            transformer.transform(source, result);

Output :
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<elements area="area" page="pagename">
<element id="id" key="key" path="//*[@id=&quot;email&quot;]"/>
</elements>

Expected output:
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
    <elements area="area" page="pagename">
    <element id="id" key="key" path="//*[@id="email"]"/>
    </elements>

谢谢你

【问题讨论】:

  • 你试试java中的转义序列吧。
  • 您好 Kumaresan,感谢您的快速回复。我的属性值是动态的。在上面的代码中,我硬编码了我的属性值。我会尝试逃避,有没有其他方法可以打印双引号。
  • System.out.println('"' + s + '"');你试试吧
  • rootElement.setAttribute("\"area"\","\"" + area+ "\"");

标签: java xml


【解决方案1】:

您尝试生成的输出不是格式良好的 XML,并且任何 XML 解析器都不会接受它。如果你想生成不是 XML 的东西,那么你当然可以这样做,但是 XML 感知工具会非常努力地阻止它。

【讨论】:

  • 这是正确的答案,或者当然。只是一个注释;在读取文档时,XML 生成器生成的&amp;quot; XML 实体当然会被任何 XML 解析器转换回双引号。
猜你喜欢
  • 2020-04-11
  • 1970-01-01
  • 2022-01-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-04-18
  • 1970-01-01
相关资源
最近更新 更多