"写入 xml 文件而不是 java 中的 < 和 >-6ren"> "写入 xml 文件而不是 java 中的 < 和 >-我必须向 xml 文件写入几行,该文件应包含 符号作为标记值的一部分。我将它们设置在一个字符串中,该字符串包含一些文本以及 符号,并且在通过 jaxb 编码后,创建的 xml 具有 ;lt;和;g-6ren">
gpt4 book ai didi

java - 将 "<"和 ">"写入 xml 文件而不是 java 中的 < 和 >

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

我必须向 xml 文件写入几行,该文件应包含 < 和 > 符号作为标记值的一部分。我将它们设置在一个字符串中,该字符串包含一些文本以及 < 和 > 符号,并且在通过 jaxb 编码后,创建的 xml 具有 ;lt;和;gt;而不是 < 和 > 符号。我尝试使用转义字符和 ascii 60 和 62 值将它们作为 < 和 > 但不起作用。任何人都可以为此提出一些解决方案吗?

最佳答案

...the xml which gets created has ;lt; and ;gt; instead of the < and > symbols...

我假设你的意思是&lt;&gt; 。这是正确的。这就是你写的<>在 XML 文本中(尽管您也可以按字面意思使用 >,请参见下文)。它们被称为命名字符实体。

这个:

<foo>6 &lt; 7</foo>

...定义一个 XML 元素,其中包含内容“6 < 7”。

这个:

<foo>6 < 7</foo>

是无法解析的无效 XML。

字符实体的替代方法是使用 CDATA 部分:

<foo><![CDATA[6 < 7]]></foo>

<![CDATA[之间的一切和]]>被视为原始文本,而不是 XML。但请注意,生成的 XML DOM 略有不同。 foo元素的值是一个 CDATA 部分,其值为 "6 < 7" 。所以不太直接。当您使用字符实体时,foo的值为"6 < 7" (没有任何干扰)。

从技术上讲,您可以写>如果您愿意的话,可以直接在 XML 中。这两行定义了完全相同的东西:

<foo>7 &gt; 6</foo>
<foo>7 > 6</foo>

两者都是有效的,并且解析时得到的数据完全相同。但您通常会看到第一个而不是第二个。

<小时/>

旁注:&还必须使用字符实体编写,因为 &是字符实体的开头。所以要有一个&在文本中,您使用 &amp; :

<foo>Jones &amp; Cooper Co.</foo>

关于java - 将 "<"和 ">"写入 xml 文件而不是 java 中的 < 和 >,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24908251/

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