如何解析XML文件或字符串
1个回答
展开全部
package com.huayu;
import Java.io.*;
import javax.xml.parsers.*;
import org.w3c.dom.*;
public class Test3 {
public static void main(String []args){
try {
//1.创建一个工厂
DocumentBuilderFactory dbf=DocumentBuilderFactory.newInstance();
//2.得到解析器
DocumentBuilder db=dbf.newDocumentBuilder();
//3.//字符串
String strTest="<?xml version=/"1.0/" encoding=/"gb2312/"?>"
+"<company>"
+"<person sex=/"male/">"
+"<name>小三子</name>"
+"<email>zhs5555555555555555555@sohu.com</email>"
+"</person>"
+"<person sex=/"male/">"
+"<name>小三子</name>"
+"<email>zhs@sohu.com</email>"
+"</person>"
+"<person sex=/"male/">"
+"<name>小三子</name>"
+"<email>zhs@sohu.com</email>"
+"</person>"
+"</company>";
//在编程中,字符串从网络传递
InputStream is=new ByteArrayInputStream(strTest.getBytes());
Document dm=db.parse(is);
NodeList nl=dm.getElementsByTagName("person");
//5.改进将 Node 换成 Element (Element提供了更加丰富的方法,解决不能指定得到某个子节点的问题)
//得到第一个人的信息
Element el=(Element)nl.item(0);
//指定得到某个子节点
NodeList nll=el.getElementsByTagName("email");
//打印name值,这是固定的取法
String name=((Element)nll.item(0)).getFirstChild().getNodeValue();
System.out.println("email="+name);
} catch (Exception e) {
e.printStackTrace();
// TODO: handle exception
}
}
}
import Java.io.*;
import javax.xml.parsers.*;
import org.w3c.dom.*;
public class Test3 {
public static void main(String []args){
try {
//1.创建一个工厂
DocumentBuilderFactory dbf=DocumentBuilderFactory.newInstance();
//2.得到解析器
DocumentBuilder db=dbf.newDocumentBuilder();
//3.//字符串
String strTest="<?xml version=/"1.0/" encoding=/"gb2312/"?>"
+"<company>"
+"<person sex=/"male/">"
+"<name>小三子</name>"
+"<email>zhs5555555555555555555@sohu.com</email>"
+"</person>"
+"<person sex=/"male/">"
+"<name>小三子</name>"
+"<email>zhs@sohu.com</email>"
+"</person>"
+"<person sex=/"male/">"
+"<name>小三子</name>"
+"<email>zhs@sohu.com</email>"
+"</person>"
+"</company>";
//在编程中,字符串从网络传递
InputStream is=new ByteArrayInputStream(strTest.getBytes());
Document dm=db.parse(is);
NodeList nl=dm.getElementsByTagName("person");
//5.改进将 Node 换成 Element (Element提供了更加丰富的方法,解决不能指定得到某个子节点的问题)
//得到第一个人的信息
Element el=(Element)nl.item(0);
//指定得到某个子节点
NodeList nll=el.getElementsByTagName("email");
//打印name值,这是固定的取法
String name=((Element)nll.item(0)).getFirstChild().getNodeValue();
System.out.println("email="+name);
} catch (Exception e) {
e.printStackTrace();
// TODO: handle exception
}
}
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询