2013-05-22 23 views
0

你好,我得到一些xml文件 他们是UTF-8,所以我遵循一些样品和我的代码看起来像这样Android开放UTF-8 XML

String text = ""; 
String str; 
BufferedReader in = new BufferedReader(new InputStreamReader(new FileInputStream(Path), "UTF-8")); 
while ((str = in.readLine()) != null) { 
    text += str; 
} 
return text; 

然后我尝试分析与代码DOM解析器

Document doc = parser.getDomElement(result); 

而这种失败 我检查我的xml文件用16进制软件 我面前 “<” 以下则charCode:EF BB BF

我错过了什么?为什么getDomElement告诉我 意外标记(位置:TEXT @ 1:2)

回答

1
text += str + "\n"; 

如果有一个标签的换行符:

<img 
src="smile.jpg"/> 

你可以得到:

<imgsrc="smile.jpg"> 

和其他一些情况。

StringBuilder text = new StringBuilder(); 
try (BufferedReader in = new BufferedReader(new InputStreamReader(
     new FileInputStream(Path), "UTF-8"))) { 
    String str; 
    while ((str = in.readLine()) != null) { 
     text.append(str).append("\n"); 
    } 
} // Does an in.close() 
return text.toString(); 
+0

其实我已经尝试其他的东西我不知道,如果你的方法工作,但它似乎比我第一次尝试 – Jebik

+0

的错误之处在于'readLine'条换行字符(S)'\ r',' \ n','NEL';所以我们需要自己重新添加它们。 –

+0

我已经通过更改我的文档生成器来解决我的bug,如下所示: InputSource src = new InputSource(stream); DocumentBuilder db = dbf.newDocumentBuilder(); – Jebik