注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

我的博客

学如逆水行舟,不进则退!

 
 
 

日志

 
 
关于我

我崇拜伟人,但我从不追逐伟人,因为自知没有那么开阔的步伐!

网易考拉推荐

dom4j解析命名空间的xml文件  

2007-12-26 11:57:20|  分类: xml |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

java程序:

package com.founder.e5.editimp.parser;

import java.io.File;
import java.util.HashMap;
import java.util.List;

import org.dom4j.Attribute;
import org.dom4j.Document;
import org.dom4j.Node;
import org.dom4j.XPath;
import org.dom4j.io.SAXReader;

public class NameSpaceXMLParse
{
 private Document doc4j = null;
 
 public NameSpaceXMLParse()
 {
  File file = new File("F:\\testxml.xml");
  SAXReader reader = new SAXReader();
  try
  {
   doc4j = reader.read(file);  
  }
  catch(Exception e)
  {
   e.printStackTrace();
  }
 }
 
 public void parseNode(){
  try
  {   
   XPath xPath = doc4j.createXPath("//cnmlNameSpace:Envelop//cnmlNameSpace:SystemId//cnmlNameSpace:Name");
   HashMap map = new HashMap();
   map.put("cnmlNameSpace","http://www.cnml.org.cn/2005/CNMLSchema");
   xPath.setNamespaceURIs(map);
   
   System.out.println(xPath.getText());
   System.out.println(xPath.getNamespaceContext());
   
   Node node = xPath.selectSingleNode(doc4j);
   System.out.println(node.getText());
  }
  catch(Exception e)
  {
   e.printStackTrace();
  }
 }
 
 public void parseAttribute()
 {
  try
  {   
   XPath xPath = doc4j.createXPath("//cnmlNameSpace:Envelop//cnmlNameSpace:SystemId/@scheme");
   HashMap map = new HashMap();
   map.put("cnmlNameSpace","http://www.cnml.org.cn/2005/CNMLSchema");
   xPath.setNamespaceURIs(map);
   
   Attribute valueAttribute = (Attribute)xPath.selectSingleNode(doc4j);  
   System.out.println(valueAttribute.getText());
  }
  catch(Exception e)
  {
   e.printStackTrace();
  }
 }

 /**
  * @param args
  */
 public static void main(String[] args)
 {
  NameSpaceXMLParse parse = new NameSpaceXMLParse();
  parse.parseNode();
  System.out.println("解析属性:");
  parse.parseAttribute();
 }

}

 

解析的xml文件testxml:

<?xml version="1.0" encoding="UTF-8"?>
<CNML schemaVersion="1.0" template="cnml_xinhua" templateVersion="1.0.0" xmlns="http://www.cnml.org.cn/2005/CNMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
 <Envelop>
  <!--系统编号,受控词类型-->
  <SystemId scheme="urn:cnml:xinhua.org:20070701:topiclist.cnml-SystemId-1:1" topicRef="en">
   <Name>ENews系统</Name>
  </SystemId> 
  <!--发稿优先级,受控词类型-->
  <Priority scheme="urn:cnml:xinhua.org:20070701:topiclist.cnml-Priority-1:1" topicRef="5.0">
   <Name>普通</Name>
  </Priority>
  <!--新闻服务,受控词类型-->
  <Services>
   <Service scheme="urn:cnml:xinhua.org:20070701:topiclist.cnml-Service-1:1" topicRef="semifinished">
    <Name>未定稿</Name>
   </Service>
  </Services>
  <!--Products内描述产品信息-->
  <Products>
   <!--属性isSpecial为1,专稿产品;缺省或属性isSpecial为0,是通稿产品-->
   <Product productID="xhzss">
    <!--产品内容语种-->
    <Notes>
     <Note name="Language">zh-CN~en-GB~</Note>
    </Notes>
    <ProductName scheme="urn:cnml:xinhua.org:20070701:topiclist.cnml-tProduct-1:1" topicRef="xhzss">
     <Name>通稿新闻线路</Name>
    </ProductName>
    <!--栏目信息-->
    <Columns>
     <Column scheme="urn:cnml:xinhua.org:20070701:topiclist.cnml-Column-1:1" topicRef="001">
      <Name>社会广角</Name>
     </Column>
    </Columns>
    <SendSequence>12</SendSequence>
   </Product>
   
  </Products>
 </Envelop> 
</CNML>

  评论这张
 
阅读(646)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017