public class DuXMLDoc { public List xmlElements(String xmlDoc) { //创建一个新的字符串 StringReader read = new StringReader(xmlDoc); //创建新的输入源SAX 解析器将使用 InputSource 对象来确定如何读取 XML 输入 InputSource source = new InputSource(read); //创建一个新的SAXBuilder SAXBuilder sb = new SAXBuilder(); try { //通过输入源构造一个Document Document doc = sb.build(source); //取的根元素 Element root = doc.getRootElement(); System.out.println(root.getName());//输出根元素的名称(测试) //得到根元素所有子元素的集合 List jiedian = root.getChildren(); Element et = null;
et = (Element) jiedian.get(0); // 这个地方没有子元素,类似这样的<adcontent_url>url</adcontent_url>用下面的方法取得 et.getChildTextTrim("op_id")
http://blog.csdn.net/ayueiloveyou/archive/2008/05/17/2454931.aspx
public List xmlElements(String xmlDoc) {
//创建一个新的字符串
StringReader read = new StringReader(xmlDoc);
//创建新的输入源SAX 解析器将使用 InputSource 对象来确定如何读取 XML 输入
InputSource source = new InputSource(read);
//创建一个新的SAXBuilder
SAXBuilder sb = new SAXBuilder();
try {
//通过输入源构造一个Document
Document doc = sb.build(source);
//取的根元素
Element root = doc.getRootElement();
System.out.println(root.getName());//输出根元素的名称(测试)
//得到根元素所有子元素的集合
List jiedian = root.getChildren(); Element et = null;
et = (Element) jiedian.get(0);
// 这个地方没有子元素,类似这样的<adcontent_url>url</adcontent_url>用下面的方法取得
et.getChildTextTrim("op_id")
List zjiedian = et.getChildren(); for(int j=0;j<zjiedian.size();j++){
// 这是有子元素的
Element xet = (Element) zjiedian.get(j);
System.out.println(xet.getName());
// 获得子元素adpos_code的值。
xet.getChildTextTrim("adpos_code")
}
} catch (JDOMException e) {
// TODO 自动生成 catch 块
e.printStackTrace();
} catch (IOException e) {
// TODO 自动生成 catch 块
e.printStackTrace();
}
return null;
}
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;import org.w3c.dom.Document;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
public class LoadXml ...{ /** *//**
* @param args
* @throws Exception
*/
public static void main(String[] args) throws Exception ...{
// TODO Auto-generated method stub
//从 XML 文档获取 DOM 文档实例。使用此类,应用程序员可以从 XML 获取一个Document
DocumentBuilder db=DocumentBuilderFactory.newInstance().newDocumentBuilder();
FileInputStream in=new FileInputStream("F:\wrokspace\learnspring\src\ch7\111.xml");
Document document=db.parse(in);
NodeList nl=document.getElementsByTagName("a");
showElem(nl);
in.close();
}
/** *//**
* 通过递归得到所有子节点
* @param nl
*/
public static void showElem(NodeList nl)...{
for(int i=0;i<nl.getLength();i++)...{
Node n=nl.item(i);
if(n.hasChildNodes())...{
System.out.print("<"+n.getNodeName()+">");
//递归
showElem(n.getChildNodes());
System.out.print("</"+n.getNodeName()+">");
}else...{
//判断是不是文本
if(n.getNodeType()==Node.TEXT_NODE)...{
System.out.print(n.getNodeValue());
}else...{
System.out.print("<"+n.getNodeName()+">");
System.out.print("</"+n.getNodeName()+">");
}
break;
}
}
}}
1、用java解析XML可以将XML转化为DOM对象或者SAX对象。这两种解析方式的异同可以google一下,很多解释。
2、至于我们平时使用的jdom dom4j等,他们内部的实现是DOM和SAX混合起来的,并且封装了具体的实现细节,而只需要使用jdom dom4j等提供给我们的方法就可以了。解答:
XML已经被jdom dom4j等进行了处理了,得到某个节点(元素)innerHTML的功能的话就要看这些开源框架有没有提供了相应的功能了,查一下API手册,应该能得到答案。