在java中读取XML的所有父节点
我有一个XML,如下所示:在java中读取XML的所有父节点,java,xml,dom,javax.xml,Java,Xml,Dom,Javax.xml,我有一个XML,如下所示: <parent> <child1> </child1> <child2> </child2> </parent> <parent> <child3> </child3> <child4> </child4> </parent> 我能够通过以下
<parent>
<child1>
</child1>
<child2>
</child2>
</parent>
<parent>
<child3>
</child3>
<child4>
</child4>
</parent>
我能够通过以下代码读取第一个父节点的子节点值:
// Get the staff element by tag name directly
Node PatientVariables = doc.getElementsByTagName("parent").item(0);
// loop the staff child node
NodeList patientlist = PatientVariables.getChildNodes();
for (int i = 0; i < patientlist.getLength(); i++) {
Node node = patientlist.item(i);
if ("child1".equals(node.getNodeName())) {
PatientLastNameValue=node.getTextContent();
//System.out.println("The XML value:"+node.getTextContent() );
}
//直接按标记名获取staff元素
节点PatientVariables=doc.getElementsByTagName(“父”).item(0);
//循环staff子节点
NodeList patientlist=PatientVariables.getChildNodes();
for(int i=0;i
但是我无法读取第二个父节点值(child3和child4)XML只允许一个根节点。请将“父”节点放在根节点下,如下所示:
<root>
<parent>
...
</parent>
<parent>
...
</parent>
</root>
...
...
然后在root的子节点上进行交互。以及上面@Johannes的答案,这一行
Node PatientVariables = doc.getElementsByTagName("parent").item(0);
仅返回第一个…
实例
您应该将
doc.getElementsByTagName(“父项”)
视为一个集合并对其进行迭代。您需要遍历xml并将每个父项添加到一个数组中
Node [] PatientVariables = add.doc.getElementsByTagName("parent");
您需要循环父对象,并通过每个父对象的子对象进行嵌套循环
for( int i = 0; i< PatientVariables.length; i++){
// loop the staff child node
NodeList patientlist = PatientVariables[i].getChildNodes();
for (int i = 0; i < patientlist.getLength(); i++) {
Node node = patientlist.item(i);
/.../
for(int i=0;i
这是一个基本的想法