如何使用<,>创建xml文件时java中的标记

时间:2012-08-21 15:02:29

标签: java xml

我想在xml中使用html标签。我正在使用CDATA,它在xml中运行,但我使用java<,>创建xml文件标签是“<”。我不明白这种情况。

String returnUrl="<![CDATA[ac=S<br/>DNbZCQOijAl6HrAAyyGV]]>";
Node returnUrlNode = doc.createElement("returnurl");
returnUrlNode.setTextContent(returnUrl);
userNode.appendChild(returnUrlNode);

3 个答案:

答案 0 :(得分:4)

如果出于某种原因,您希望文本位于CDATA部分而不是简单的文本节点,则需要自己创建CDATA。我假设你使用的是DOM而不是一些看似相似的API,所以它会是:

Node returnUrlNode = doc.createElement("returnurl");
returnUrlNode.appendChild(
    doc.createCDATASection(
        "Whatever text you wanted to go in here, including unescaped < and >."));

请注意,就像SLaks指出的那样,当DOM被序列化时,所有转义都将自动发生。 (在这种情况下,这意味着将自动添加<![CDATA[]]>。)如果您需要输出为CDATA部分,这就是您创建实际CDATA部分的方式一个普通的文本节点。

答案 1 :(得分:3)

Java XML API将自动转义您的内容。

你可以写.setTextContent("ac=S<br/>DNbZCQOijAl6HrAAyyGV"),Java会为你展开<>

答案 2 :(得分:1)

您需要使用XML转义字符:

& &amp; 
< &lt; 
> &gt; 
" &quot; 
' &apos;