我想遍历DOM中的XML文件,以便检索所有的(名称,值)对:
>属性名称和值;
>所有叶节点名称及其文本内容;
因此,以下面的XML文件为例:
abcd
efgh
ijkl
mnop
qrst
我想要的名称值对是:
text=title1
id=comment1
data=abcd
data=efgh
id=commment2
data=ijkl
data=mnop
data=qrst
解决方法:
更简单的解决方案可能是使用XPath提取所有名称值对,如以下示例所示.您还可以跳过DOM构造并直接在InputSource上调用evaluate. XPath表达式
//@* | //*[not(*)]
匹配所有属性的联合以及没有任何子节点的所有节点.
import java.io.StringReader;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.xpath.XPath;
import javax.xml.xpath.XPathConstants;
import javax.xml.xpath.XPathFactory;
import org.w3c.dom.Document;
import org.w3c.dom.Node;
import org.w3c