<?xml version="1.0" encoding="gb2312" ?> 
 <list>
  <matches name="name1">
   <match id="1" time="2004.3.7" info="a1#b1#c1#d1" /> 
   <match id="2" time="2004.3.7" info="a2#b2#c2#d2" /> 
  </matches>
  <matches name="name2">
   <match id="3" time="2004.3.7" info="a3#b3#c3#d3" /> 
   </matches>
  <matches name="name1">
   <match id="4" time="2004.3.8" info="a4#b4#c4#d4" /> 
  </matches>
 </list>xml文件内容如上,如何用selectNodes或selectSingleNode方法一步定位到info="a4#b4#c4#d4"的那个节点,即:既满足matches的属性name="name1",同时又满足matches的子节点match的属性info含有a4和c4子串,我想用contains函数,但屡次出错。请教高手解答。谢谢!!

解决方案 »

  1.   

    安装完MSXML4,运行带contains的selectNodes方法还是出错,说找不到contains方法。
      

  2.   

    建议写一个xslt文件,通过if语句来判断就行了。然后使用dom中的方法执行一下,就得到了。
      

  3.   

    可我是用VC++调用selectNodes的。还需要xslt文件么?
      

  4.   

    那看来不用xslt转换了,只是你需要解决如何调用函数是否成功.俺没有用过这个函数.
      

  5.   

    我下载并安装了MSXML4,但用的是:
    #import "msxml.dll"
    仍然出错(找不到函数),可能是引入的xml库版本太低了。
      

  6.   

    match[contains(@info, 'c4') and contains(@info, 'b4') and name='name1']
    用这个XPath就可以了难道都不看XPath Syntax的……
      

  7.   

    上面的xpath的上下文错了,但是比较条件基本上就这个样子
      

  8.   

    上面的xpath的上下文错了,但是比较条件基本上就这个样子