【发布时间】:2016-01-09 05:36:40
【问题描述】:
您好,我正在使用能够生成 xml 文件的 javax.xml 解析器生成 xml 文件。但是在我的属性值中,我得到的是 " 而不是双引号。 如何在属性值中打印双引号。下面是我的代码
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="email"]"/>
</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+ "\"");