解析xml

//使用JDom读取xml中的信息,需要导入jdom.jar,其实质是使用SAX来解析xml文件
public class ReadXMLByJDom
{
public static void main(String[] args) {
SAXBuilder sax=new SAXBuilder();
try {
Document doc=sax.build("xml文件路径");
Element root=doc.getRootElement();//得到根节点
Element datasourse=root.getChild("datasourse");
String driver=datasourse.getChildText("driver");//直接根据节点的名称去取值
String url=datasourse.getChildText("url");
String username=datasourse.getChildText("username");
String password=datasourse.getChildText("password");
} catch (JDOMException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}




//使用eclipse自带的工具进行解析



//读取xml中的信息
public class ReadXML
{
public static void main(String[] args) {

try {
//构造document对象,用来读取html或者xml中的节点(对象)
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
Document doc = db.parse("E:\\MyeclipseWorkspace\\prjReadFile\\config.xml");

Element root=doc.getDocumentElement();//根节点
NodeList list= root.getChildNodes();//根节点下的子结点集合,返回NodeList
for (int i = 0; i <list.getLength(); i++)
{
Node node=list.item(i);
if(node.getNodeType()==Node.ELEMENT_NODE)//判断节点的类型
{
Element e=(Element) node;
String key=e.getAttribute("key");//获取节点的属性值
NodeList ary=e.getChildNodes();//再次获取Element下的子节点
for (int j = 0; j < ary.getLength(); j++) {
Node n=ary.item(j);
if(n instanceof Element)//instanceof 用来判断某个对象是否是这个类的实例
{
Element ement=(Element) n;
//节点名称ement.getNodeName();
// Node a=ement.getLastChild();
// System.out.println(a);
String s=ement.getLastChild().getNodeValue();
//这样也是的String s=ement.getFirstChild().getNodeValue();
System.out.println(s);
}
}
}
}
// Node node=root.getFirstChild();//根节点下的第一个子结点,
// String nodeName=node.getNodeName();//第一个子结点的名称
} catch (Exception e) {
// TODO: handle exception
}
}
}

你可能感兴趣的:(解析xml)