XML createElement 双引号 DocumentBuilder api

XML createElement double quotes DocumentBuilder api

提问人:jks 提问时间:6/24/2018 更新时间:6/24/2018 访问量:165

问:

我想通过 java 程序创建一个 XML 文件。 XML 结构如下

<PERSON transactionType="ADD">
   <AGE>30</AGE>
<PERSON>

问题是我不能在第一个元素(PERSON)中添加双引号,因为我的SOAP请求需要它。 我尝试了许多解决方案,但没有任何效果。

示例代码:

Element rootElement = doc.createElement("transactionType=\"ADD"\";);
Java XML 双引号

评论

0赞 RealSkeptic 6/24/2018
该元素是 。是添加到元素的属性。然后,当您将其导出为文本时,它应该自动带有双引号。PERSONtransactionType
0赞 Mincong Huang 6/24/2018
我认为你需要这样的东西.因为 transactionType 是一个属性。Element person = doc.getDocumentElement(); person.setAttribute("transactionType", "ADD");

答:

0赞 rodridevops 6/24/2018 #1

您必须将 设置为属性。transationType

Element rootElement = doc.createElement("PERSON");
Attr attr = doc.createAttribute("transactionType");
attr.setValue("ADD");
rootElement.setAttributeNode(attr);

注意:它将自动加双引号。

0赞 jurgen 6/24/2018 #2

SimpleXml 可以做到:

final SimpleXml simple = new SimpleXml();
final Element root =
    element("PERSON")
        .attribute("transactionType", "ADD")
        .child(element("AGE").text("30"));
System.out.println(simple.domToXml(root));

将输出:

<PERSON transactionType="ADD"><AGE>30</AGE></PERSON>

从 maven central:

<dependency>
    <groupId>com.github.codemonstur</groupId>
    <artifactId>simplexml</artifactId>
    <version>1.4.0</version>
</dependency>