首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > XML SOAP >

查询XML节点,获取另一个节点的值解决思路

2013-01-09 
查询XML节点,获取另一个节点的值?xml version1.0 encodingGB2312 ? - allproducts version1.0

查询XML节点,获取另一个节点的值


<?xml version="1.0" encoding="GB2312" ?> 
- <allproducts version="1.0">
- <products>
  <product name="prodId" value="1" /> 
  <product name="prodContent" value="A" /> 
  <product name="prodPrice" value="123" /> 
  <product name="prodIsptype" value="AAA" /> 
  <product name="prodDelaytimes" value="AAA" /> 
  <product name="prodProvinceid" value="111" /> 
  <product name="prodType" value="AAA" /> 
  </products>
- <products>
  <product name="prodId" value="2" /> 
  <product name="prodContent" value="B" /> 
  <product name="prodPrice" value="456" /> 
  <product name="prodIsptype" value="BBB" /> 
  <product name="prodDelaytimes" value="BBB" /> 
  <product name="prodProvinceid" value="222" /> 
  <product name="prodType" value="BBB" /> 
  </products>
- <products>
  <product name="prodId" value="3" /> 
  <product name="prodContent" value="C" /> 
  <product name="prodPrice" value="789" /> 
  <product name="prodIsptype" value="CCC" /> 
  <product name="prodDelaytimes" value="CCC" /> 
  <product name="prodProvinceid" value="333" /> 
  <product name="prodType" value="CCC" /> 
  </products>
</allproducts>


我这里有一段XML字符串,我想通过查询 prodContent、prodIsptype、prodProvinceid 这三个内容,来获取同一<products> 下 prodId、prodPrice的值,无从下手!求教。
[解决办法]
伪代码
search(String iprodContent,String iprodIsptype,String iprodProvinceid ){
     取得root节点
     List products = root.selectNodes("/products");
    foreach(var i in products)//循环List
    //逐个循环products
    // 取得属性name的值 如果等于prodContent,取得属性value的值。继续取另外两个属性
     // 判断取得的value是否等于参数的值
    // 是的话 取出prodId、prodPrice的值

}


[解决办法]
xpath:
//products[@prodContent="xxx" and @prodIsptype="yyy" and prodProvinceid="zzz"]
这个XPATH能根据这三个条件找到你要的products,剩下的应该都不是问题了吧?
[解决办法]
用xpath就很简单,楼主可看下我的博客喔

热点排行