2015-09-15 40 views
1

我正在使用Java和DOM读取XML数据。当我向控制台打印一个变量时,我发现它打印在两条不同的线上。Java从XML中删除字符

输出:

Hello How are 
you today? 

当我去我想打印的基础XML文档的属性,我注意到以下几点:

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

如何去除字符&#xD;&#xA;来自Java中的属性值?

如果从属性的数据被存储在名为myVar的爪哇字符串变量,我尝试以下不成功:

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

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

} 
+0

尝试替换\ r和\ n。 –

回答

0

replaceAll("\\s+", " ")可以工作,但replaceAll("\r\n", " ")也一样。另一方面,"\n\r"作为replaceAll的第一个参数不起作用。

1

&#xD;&#xA;这是嵌入在XML换行,这可能是转换成字符为0xD java中的0xA(13 10)。因此,对于该模式,请使用“\ n \ r”或使用“\ s +” - >“”

+0

如果他使用'replaceAll',他应该使用''\\ s +“',因为它需要一个正则表达式作为它的第一个参数。使用'“s +”'只会替换一个或多个s字符的实例。 –

+0

谢谢好点! – ControlAltDel

+0

“\\ s +”为我工作!相信两者。 – pseudorandom