我想在xml中使用html标签。我正在使用CDATA,它在xml中运行,但我使用java<,>创建xml文件标签是“<”。我不明白这种情况。
String returnUrl="<![CDATA[ac=S<br/>DNbZCQOijAl6HrAAyyGV]]>";
Node returnUrlNode = doc.createElement("returnurl");
returnUrlNode.setTextContent(returnUrl);
userNode.appendChild(returnUrlNode);
答案 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转义字符:
& & < < > > " " ' '