在Java中将XML块提取为字符串

时间:2014-09-19 16:26:30

标签: java xml

我有一个XML,如下所示

<accountProducts>
 <accountProduct>...</accountProduct>
 <accountProduct>...</accountProduct>
 <accountProduct>...</accountProduct>
 <accountProduct>...</accountProduct>
</accountProducts>

现在我想将每个accountProduct块提取为字符串。那么有没有XML解析技术可以做到这一点,或者我需要进行字符串操作。

请帮助。

2 个答案:

答案 0 :(得分:0)

请使用JAXP

  

Java API for XML Processing(JAXP)用于使用以Java编程语言编写的应用程序处理XML数据。

答案 1 :(得分:0)

如上所述使用DOM,您需要使用DocumentBuilder解析XML。

DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
//if your document has namespaces, you can specify that in your builder.
DocumentBuilder db = dbf.newDocumentBuilder();

Using this object, you can call the parse() method.

您的XML输入可以作为文件或流提供给DOM解析器。

作为档案......

File f = new File("MyXmlFile.xml");
Document d = db.parse(f);

作为一个字符串......

String myXmlString = "...";
InputSource ss = new InputSource(new StringReader(myXmlString));
Document d = db.parse(ss);

获得Document对象后,可以使用DOM函数或XPATH遍历文档。此示例说明了DOM方法。

在您的示例中,假设accountProduct节点仅包含文本,以下内容应该有效。

NodeList nl = d.getElementsByTagName("accountProduct");
for(int i=0; i<nl.getLength(); i++) {
    Element elem = (Element)nl.item(i);
    System.out.println(elem.getTextContent());
}

如果accountProduct包含混合内容(文本和元素),则需要更多代码来提取所需内容。