我有一个XML,如下所示
<accountProducts>
<accountProduct>...</accountProduct>
<accountProduct>...</accountProduct>
<accountProduct>...</accountProduct>
<accountProduct>...</accountProduct>
</accountProducts>
现在我想将每个accountProduct块提取为字符串。那么有没有XML解析技术可以做到这一点,或者我需要进行字符串操作。
请帮助。
答案 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包含混合内容(文本和元素),则需要更多代码来提取所需内容。