关于在XML中根据路径查找对应元素

好辛苦啊!!我做了尽一个月的XML解析的探索.几乎是没人指导的情况下,今天我终于找到了一个方法可以很简单的得到我要的准确答案.

XML::例子 

<?xml version="1.0" encoding="gb2312"?>
<row>
<person>
<name>王明 </name>
<college>交通学院 </college>
<telephone>88888888</telephone>
<notes>男,1975年生 </notes>
</person>
</row>

我们要按路径   "row.person.name" 得到  "王明"

下面提供我的一段代码,希望能给大家带来帮助,

 

public class ARXmlParser
{
  
   protected static Document m_objDocument = null;

   /**
    *  Constructs an CXmlDealer instance
    */
   public ARXmlParser()
   {    
   
   }
  
   /**
    * parse the file with a given file path
    * @param vstrDocument :the location of the file
    */
   protected void loadXMLDocument(String v_strPath)
   {
       try
    {
        DocumentBuilderFactory domFactory =DocumentBuilderFactory.newInstance();
        domFactory.setValidating(true);
        DocumentBuilder db=domFactory.newDocumentBuilder();
        db.setErrorHandler(new MyException());
        m_objDocument=db.parse(new File(v_strPath));
      
     }
        catch (SAXException se)
        {
         System.out.println(se);
         System.exit(0);
        }
        catch (java.io.IOException e)
     {
           System.out.println(e);
     }
        catch (Exception pce)
     {
           System.out.println(pce);
     }
   }
  
   protected String querySingleField(Document v_objDocument, String v_strXPath)
   {
    Element element = null;
    try
    {
    element = (Element)XPathAPI.selectSingleNode(v_objDocument.getDocumentElement(),processString(v_strXPath));
      
    }
    catch (TransformerException e)
    {
   e.printStackTrace();
    }
    return ((Text)element.getFirstChild()).getNodeValue();
   
   }
  
   private String processString(String v_strArray)
   {
  
    return "//"+v_strArray.replace('.','/');
   }
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值