gpt4 book ai didi

xml - 处理垂直制表符和其他无效 xml 字符的最佳实践

转载 作者:数据小太阳 更新时间:2023-10-29 01:39:33 25 4
gpt4 key购买 nike

我有一个应用程序(与许多其他应用程序一样)接收用户输入,将其存储在数据库中,然后使用(除其他外)XML 工具对其进行处理。该应用程序接受自由文本输入,并且像许多其他开发人员一样,我在转义和引用时非常小心,因此它可以处理包含不同类型的空格、引号字符、保留的 XML 字符等的输入。

但是,有时用户会设法输入包含垂直制表符(十六进制 0B)或换页符(十六进制 0C)的字符串。这根本无法由 XML 工具处理,并导致应用程序停止运行。

在我的应用程序中,在“往返”过程中保留原始输入非常重要,所以我不愿意去掉任何我不喜欢的字符,尤其是换页之类的东西,它们仍然偶尔在纯文本文件。

当涉及到 XML 处理时,是否有任何可接受的最佳实践或通用策略来处理这些字符?

最佳答案

是的,不幸的是有些字符在 XML 中是非法的,并且没有等效的实体。作为这些示例之一,请参见:

http://www.jdom.org/docs/apidocs.1.1/org/jdom/Element.html#setText(java.lang.String)

这是一个 String setter...可以抛出异常!垂直制表符恰好是没有 XML 实体的字符之一,也没有单独使用 XML 来“转义”它的方法。

我自己正在解决这个问题,方法是使用 base64 编码来清理可能包含这些字符的字符串。这有点傻,因为我必须一直进行 base64 编码和解码,但我认为没有好的选择。

关于xml - 处理垂直制表符和其他无效 xml 字符的最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8386970/

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