gpt4 book ai didi

java - 如何在Java中放置字符串文本而不将内容转换为xml文件?

转载 作者:行者123 更新时间:2023-12-01 19:18:38 24 4
gpt4 key购买 nike

我需要在Java中将字符串内容放入xml中。我使用这种代码在xml中插入信息:

Document doc = DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(new File ("file.xml"));
DOMSource source = new DOMSource (doc);

Node cards = doc.getElementsByTagName ("cards").item (0);

Element card = doc.createElement ("card");
cards.appendChild(card);

Element question = doc.createElement("question");
question.appendChild(doc.createTextNode("This <b>is</b> a test.");
card.appendChild (question);

StreamResult result = new StreamResult (new File (file));
Transformer tf = TransformerFactory.newInstance().newTransformer();
tf.setOutputProperty(OutputKeys.INDENT, "yes");
tf.transform(source, result);

但是字符串在 xml 中转换如下:

<cards>
<card>
<question>This &lt;b&gt;is&lt;/b&gt; a test.</question>
</card>
</cards>

应该是这样的:

<cards>
<card>
<question>This <b>is</b> a test.</question>
</card>
</cards>

我尝试使用 CDDATA 方法,但它放置的代码如下:

// I changed this code
question.appendChild(doc.createTextNode("This <b>is</b> a test.");
// to this
question.appendChild(doc.createCDATASection("This <b>is</b> a test.");

此代码获取一个如下所示的 xml 文件:

<cards>
<card>
<question><![CDATA[This <b>is</b> a test.]]></question>
</card>
</cards>

我希望有人可以帮助我将字符串内容放入xml文件中,内容完全相同。

提前致谢!

最佳答案

这是预期的行为。

考虑一下如果括号按您放置的方式保留,最终结果基本上是:

<cards>  
<card>
<question>
This
<b>
is
</b>
a test.
</question>
</card>
</cards>

基本上,这会导致 <b>是 xml 树中的附加节点。将括号编码为 &lt;&gt;确保当任何 xml 解析器显示时,括号都会被显示,并且不会被误认为是附加节点。

如果您确实希望它们按照您所说的那样显示,您将需要创建名为 b 的元素。 。这不仅会很尴尬,而且也不会像上面写的那样显示 - 它会显示为额外的嵌套节点,如我上面所示。因此,您需要修改 xml 编写器以内联输出这些标签。

恶心。

关于java - 如何在Java中放置字符串文本而不将内容转换为xml文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5500852/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com