代码之家  ›  专栏  ›  技术社区  ›  Christopher Smith

用Java解析器实现XML属性中的保存/t和/n

  •  -1
  • Christopher Smith  · 技术社区  · 8 年前

    在解析为文档的XML文件中,我希望得到一个XML属性,该属性包含嵌入的选项卡和新行。

    我搜索了一下,发现XML解析规范说属性文本是“规范化的”,用空白字符替换空白字符。

    我想在解析xml之前,a必须用适当的转义字符替换制表符和换行符。

    在我所有的google中,我都没有找到一个直接的方法从文件获取属性文本并保留制表符和换行符的文档。

    XML文件是从第三方应用程序生成的,因此可能不在其中寻址。

    我想使用JDK解析器。

    我最初尝试将文件读入字符串并解析字符串时失败,第一个字节出现解析错误

    对直截了当的方法有什么建议吗?

    一个示例元素位于pastbin Element example

    [1]: https://pastebin.com/pc9uGbSD
    

    我执行这样的xml解析

    public ReadPlexExport(Path xmlPath, ExportType exType) throws Exception {
        this.xmlPath = xmlPath;
        this.type = exType;
        this.doc = DBF.newDocumentBuilder().parse(this.xmlPath.toFile());
    }
    
    1 回复  |  直到 8 年前
        1
  •  0
  •   Christopher Smith    8 年前

    解决我眼前问题的快速而肮脏的解决方案是将XML文件逐行读取为文本文件,每行用转义制表符值替换字符,将行写入新文件,然后追加转义换行符。

    可以分析新的XML文件。原始XML将始终采用允许此黑客攻击的形式,因为只有在属性中才会出现换行符。

    推荐文章