【问题标题】:Java Removing Characters from XMLJava 从 XML 中删除字符
【发布时间】:2015-09-15 17:12:38
【问题描述】:

我正在使用 Java 和 DOM 读取 XML 数据。当我将变量打印到控制台时,我注意到它打印在两条不同的行上。

输出:

Hello How are
you today?

当我转到我试图打印底层 XML 文档的属性时,我注意到以下内容:

<element attribute = "Hello How are&#xD;&#xA;you today?"></element>

如何从 Java 中的属性值中删除字符 &amp;#xD;&amp;#xA;

如果属性中的数据存储在名为 myVar 的 Java 字符串变量中,我尝试了以下操作失败:

if(myVar.contains("&#xD;&#xA;")){

    myVar = myVar.replaceAll("&#xD;&#xA;", " ");

}

【问题讨论】:

  • 尝试替换 \r 和 \n。

标签: java xml dom escaping


【解决方案1】:

&amp;#xD;&amp;#xA;这是嵌入在XML中的换行符,在java中很可能转换为字符0xD 0xA(13 10)。所以对于模式,要么使用“\n\r”,要么使用“\s+”->“”

【讨论】:

  • 如果他使用replaceAll,他应该使用"\\s+",因为它需要一个正则表达式作为它的第一个参数。使用 "s+" 只会替换 1 个或多个 s 字符的实例。
  • 应该是 "\r\n" 而不是 "\n\r"。
【解决方案2】:

replaceAll("\\s+", " ") 有效,replaceAll("\r\n", " ") 也有效。另一方面,"\n\r" 作为 replaceAll 的第一个参数不起作用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-05-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-07
    • 2011-11-08
    • 2017-05-21
    • 2015-05-13
    相关资源
    最近更新 更多