java 解析XML

IT_huge 学生  2015-08-05 03:42:40
(spring MVC)在jsp页面中通过点击一个按钮,从数据库中读取一段XML字符串,解析之后 ,把一些字段及值传到一个新的jsp页面。
...全文
147 点赞 收藏 4
写回复
4 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
我狂故我笑 2015-08-07
楼上正解
回复
乱世丶桃花 2015-08-07
楼上正解
回复
Giberson1 2015-08-06
程序中的attributeName就是你要传递的参数名, attributeValue就是你要传递的参数值:
import java.io.File;
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.NamedNodeMap;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.w3c.dom.Element;
public class Xmltest {
 public static void main(String[] args) throws Exception{
        // TODO Auto-generated method stub
        //从 XML 文档获取 DOM 文档实例。使用此类,应用程序员可以从 XML 获取一个Document
//  创建解析工厂指定DocumentBuilder  
        DocumentBuilder db=DocumentBuilderFactory.newInstance().newDocumentBuilder();
        Document document=db.parse(new File("F:\\111.xml"));//把文件解析成DOCUMENT类型
      //  Element root = document.getDocumentElement();  //得到Document的根(节点名:book)
       // System.out.println("根节点标记名:" + root.getTagName());  
        System.out.println("*****下面遍历XML元素*****");  
        Element root=document.getDocumentElement() ;
        String rootName=root.getNodeName();
        System.out.println("XML文件根节点的名字:"+rootName); 
        NodeList list=root.getElementsByTagName_r("dbstore");//获得page元素
        //NodeList list=document.getElementsByTagName_r("dbstore");//获得page元素这个和上面一行效果一样
       // System.out.println(list.getLength());  
        showElem(list);       
       
    }
 public static void showElem(NodeList nl){
   for(int i=0;i<nl.getLength();i++){
             Node n=nl.item(i);//得到父节点
             if(n.hasChildNodes())
             {
             NamedNodeMap attributes=n.getAttributes(); //遍历节点所有属性如<dbstore single="false" att="tta">
            // System.out.println(attributes.getLength()); 
             for(int j=0;j<attributes.getLength();j++)
             {
              Node attribute=attributes.item(j);
               //得到属性名
              String attributeName=attribute.getNodeName();
              System.out.println("属性名:"+attributeName);
              //得到属性值
              String attributeValue=attribute.getNodeValue();
              System.out.println("属性值:"+attributeValue);
          }//打印出结果属性名:att属性值:tta属性名:single属性值:false
            
            
             }
             //子节点
          NodeList childList=n.getChildNodes();
          for(int x=0;x<childList.getLength();x++)
          {
            Node childNode=childList.item(x);
            //判断取出的值是否属于Element元素,目的是过滤掉
            if(childNode instanceof Element)
               {
                   //得到子节点的名字
                   String childNodeName=childNode.getNodeName();
                   System.out.println("子节点名:"+childNodeName);
                   //得到子节点的值
                   String childNodeValue=childNode.getTextContent();
                   System.out.println("子节点值:"+childNodeValue);
               }
          } showElem(n.getChildNodes());//递归
              
             }
  
            
            
   }
  
 }

 
回复
//解析xml Document document = null; try { document = DocumentHelper.parseText(responseMess); } catch (DocumentException e) { e.printStackTrace(); } //得到根元素 Element rootElement = document.getRootElement(); Element bkSerialElement = rootElement.element("Header").element("BK_SERIAL"); String bkSerial = bkSerialElement.getText();
回复
相关推荐
发帖
Web 开发
创建于2007-09-28

8.0w+

社区成员

Java Web 开发
申请成为版主
帖子事件
创建了帖子
2015-08-05 03:42
社区公告
暂无公告