Java XMLStreamReader 将“转换为”
Java XMLStreamReader converts " to "
假设,我们有以下 XML
<Test>
<Description> "Hi" </Description>
</Test>
我使用 XMLStreamReader 加载此 XML 并使用 reader 对象进行解析。当我打印使用 [=22=] 的 getText() 解析时遇到的字符时,我看到 "
打印为“。虽然,”(双引号)不需要转义为 "
首先,我想知道为什么解析器在不需要转义时自动进行这种转换。例如,<, > and &
被保留,没有它,结果 XML 将无效。但是," and '
的情况并非如此。我必须按照接收描述的方式保存描述。是否可以使用 XMLStreamReader API?
I have to save the description the same way I receive it.
你不应该。就XML而言,"
或"
是完全一样的东西,因此你获得一个或另一个对你来说无关紧要。
至于为什么会发生这种情况,XML 解析器的工作是取消转义转义字符,以便它们向您显示它们所指的数据。它还会转义 <
等等。但是,当这样获得的文本随后被序列化回 XML 时,序列化程序将再次转义 <
等字符,因为 XML 需要它,但它不会费心转义 "
因为没有必要。
当你经历一个解析 XML,然后再次序列化的过程时,你不可能有一个 "preserving" 原样转义的概念。这在转换中固有地丢失了。解析器只是不负责保留这些不需要的信息。但是,如果您希望在结果 XML 中始终将 "
转义为 "
,您的 XML 序列化程序可能有一个选项(您没有提供详细信息你在用,所以我不能肯定地告诉你你能不能。)
假设,我们有以下 XML
<Test> <Description> "Hi" </Description> </Test>
我使用 XMLStreamReader 加载此 XML 并使用 reader 对象进行解析。当我打印使用 [=22=] 的 getText() 解析时遇到的字符时,我看到 "
打印为“。虽然,”(双引号)不需要转义为 "
首先,我想知道为什么解析器在不需要转义时自动进行这种转换。例如,<, > and &
被保留,没有它,结果 XML 将无效。但是," and '
的情况并非如此。我必须按照接收描述的方式保存描述。是否可以使用 XMLStreamReader API?
I have to save the description the same way I receive it.
你不应该。就XML而言,"
或"
是完全一样的东西,因此你获得一个或另一个对你来说无关紧要。
至于为什么会发生这种情况,XML 解析器的工作是取消转义转义字符,以便它们向您显示它们所指的数据。它还会转义 <
等等。但是,当这样获得的文本随后被序列化回 XML 时,序列化程序将再次转义 <
等字符,因为 XML 需要它,但它不会费心转义 "
因为没有必要。
当你经历一个解析 XML,然后再次序列化的过程时,你不可能有一个 "preserving" 原样转义的概念。这在转换中固有地丢失了。解析器只是不负责保留这些不需要的信息。但是,如果您希望在结果 XML 中始终将 "
转义为 "
,您的 XML 序列化程序可能有一个选项(您没有提供详细信息你在用,所以我不能肯定地告诉你你能不能。)