Dew*_*yne 245 java xml string parsing file
我有以下代码:
DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(xmlFile);
Run Code Online (Sandbox Code Playgroud)
我怎样才能解析String中包含的XML而不是文件?
shs*_*mer 471
我在我的代码库中有这个功能,这应该适合你.
public static Document loadXMLFromString(String xml) throws Exception
{
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
InputSource is = new InputSource(new StringReader(xml));
return builder.parse(is);
}
Run Code Online (Sandbox Code Playgroud)
也看到了这个类似的问题
Uri*_*Uri 16
一种方法是使用带有InputSource而不是文件的parse版本
可以从Reader对象构造SAX InputSource.一个Reader对象是StringReader
所以像
parse(new InputSource(new StringReader(myString))) may work.
Run Code Online (Sandbox Code Playgroud)
将字符串转换为 InputStream 并将其传递给 DocumentBuilder
final InputStream stream = new ByteArrayInputStream(string.getBytes(StandardCharsets.UTF_8));
DocumentBuilder builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
builder.parse(stream);
Run Code Online (Sandbox Code Playgroud)
编辑
在回答bendin的有关编码评论,看到shsteimer的回答了这个问题。
我正在使用这个方法
public Document parseXmlFromString(String xmlString){
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
InputStream inputStream = new ByteArrayInputStream(xmlString.getBytes());
org.w3c.dom.Document document = builder.parse(inputStream);
return document;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
247179 次 |
| 最近记录: |