2

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

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

3 回答 3

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[and]]>将被自动添加。)如果您需要输出为 CDATA 部分而不是普通文本节点,这就是创建实际 CDATA 部分的方式。

于 2012-08-21T15:17:00.163 回答
3

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

你可以只写.setTextContent("ac=S<br/>DNbZCQOijAl6HrAAyyGV"),Java 会为你解决<and >

于 2012-08-21T15:05:02.417 回答
1

您需要使用 XML 转义字符:

& &amp; 
< &lt; 
> &gt; 
" &quot; 
' &apos;
于 2012-08-21T15:06:55.957 回答