我想请问一下,如何根据条件来读取相应的节点信息
下面是我的一个xml文件和网上的一个读取xml的代码,现在我希望根据<catalog>值为水晶或者纯银
来分别读取它下面<sub>子节点中的内容,源代码只能循环读出所有子节点的内容,如何修改一下满足要求--------------------------------------------------xml文件
<?xml version="1.0" encoding="gb2312" ?>
<root>
<catalog>水晶
<name>水晶饰品</name>
<folder>shuijing</folder>
<sub>
<subname>水晶手链</subname>
<url>sj_sl.htm</url>
</sub>
<sub>
<subname>水晶戒指</subname>
<url>sj_jz.htm</url>
</sub>
<sub>
<subname>水晶项链</subname>
<url>sj_xl.htm</url>
</sub>
<sub>
<subname>水晶吊坠</subname>
<url>sj_dz.htm</url>
</sub>
</catalog>
<catalog>纯银
<name>纯银饰品</name>
<folder>chunyin</folder>
<sub>
<subname>纯银手镯</subname>
<url>cy_sz.htm</url>
</sub>
<sub>
<subname>纯银项链</subname>
<url>cy_xl.htm</url>
</sub>
<sub>
<subname>纯银戒指</subname>
<url>cy_jz.htm</url>
</sub>
<sub>
<subname>纯银手链</subname>
<url>cy_sl.htm</url>
</sub>
</catalog>
</root> ------------------------------------------------------xml读取package mypackage;import java.io.*;
import java.util.*;
import org.w3c.dom.*;
import javax.xml.parsers.*; public class xmldisplay{
public static void main (String args[]){
long lasting=System.currentTimeMillis();
try{
File f=new File("test.xml");
DocumentBuilderFactory factory=DocumentBuilderFactory.newInstance();
DocumentBuilder builder=factory.newDocumentBuilder();
Document doc=builder.parse(f);
NodeList nl=doc.getElementsByTagName("sub");
for(int i=0;i<nl.getLength();i++)
{
System.out.print("名称:"+doc.getElementsByTagName("subname").item(i).getFirstChild().getNodeValue());
System.out.print("链接:"+doc.getElementsByTagName("url").item(i).getFirstChild().getNodeValue());
}
}catch(Exception e){
e.printStackTrace();
}
}
}
下面是我的一个xml文件和网上的一个读取xml的代码,现在我希望根据<catalog>值为水晶或者纯银
来分别读取它下面<sub>子节点中的内容,源代码只能循环读出所有子节点的内容,如何修改一下满足要求--------------------------------------------------xml文件
<?xml version="1.0" encoding="gb2312" ?>
<root>
<catalog>水晶
<name>水晶饰品</name>
<folder>shuijing</folder>
<sub>
<subname>水晶手链</subname>
<url>sj_sl.htm</url>
</sub>
<sub>
<subname>水晶戒指</subname>
<url>sj_jz.htm</url>
</sub>
<sub>
<subname>水晶项链</subname>
<url>sj_xl.htm</url>
</sub>
<sub>
<subname>水晶吊坠</subname>
<url>sj_dz.htm</url>
</sub>
</catalog>
<catalog>纯银
<name>纯银饰品</name>
<folder>chunyin</folder>
<sub>
<subname>纯银手镯</subname>
<url>cy_sz.htm</url>
</sub>
<sub>
<subname>纯银项链</subname>
<url>cy_xl.htm</url>
</sub>
<sub>
<subname>纯银戒指</subname>
<url>cy_jz.htm</url>
</sub>
<sub>
<subname>纯银手链</subname>
<url>cy_sl.htm</url>
</sub>
</catalog>
</root> ------------------------------------------------------xml读取package mypackage;import java.io.*;
import java.util.*;
import org.w3c.dom.*;
import javax.xml.parsers.*; public class xmldisplay{
public static void main (String args[]){
long lasting=System.currentTimeMillis();
try{
File f=new File("test.xml");
DocumentBuilderFactory factory=DocumentBuilderFactory.newInstance();
DocumentBuilder builder=factory.newDocumentBuilder();
Document doc=builder.parse(f);
NodeList nl=doc.getElementsByTagName("sub");
for(int i=0;i<nl.getLength();i++)
{
System.out.print("名称:"+doc.getElementsByTagName("subname").item(i).getFirstChild().getNodeValue());
System.out.print("链接:"+doc.getElementsByTagName("url").item(i).getFirstChild().getNodeValue());
}
}catch(Exception e){
e.printStackTrace();
}
}
}
http://blog.csdn.net/jgsfy/archive/2005/10/25/516026.aspx