<my:myFields xmlns:my="http://schemas.microsoft.com/2010-12-28T03:12:17" xml:lang="zh-cn">
<my:组1>
<my:组2>
<my:域1>1</my:域1>
<my:域2>2</my:域2>
<my:域3>3</my:域3>
</my:组2>
          <my:组2>
                             <my:域1>4</my:域1>
          <my:域2>4</my:域2>
          <my:域3>4</my:域3>
</my:组2>
         </my:组1>
<my:域4>66</my:域4>
<my:域5>55</my:域5>
<my:域6>77</my:域6>
</my:myFields>在reporting service中我以这样的xml为数据源。我想查询出所有的带数据的节点就是 <my:域1><my:域2>......
请问这个查询该怎么写?
我这样写“myFields/组1”只查出<my:域4><my:域5><my:域6>
这样写“myFields/组1/组2”只查出<my:域1><my:域2><my:域3>
请问高手该如何写??

解决方案 »

  1.   

    你这个xml文档设计的不好啊,这样设计没法通过xpath筛选出你要的结果,除非用正则表达式。
    如果你要用xpath来筛选,你得这样设计<my:域 id=1><my:域 id=2>……标签一致,给属性编号。
      

  2.   

    把页面创建好,用firefox,安装xpather这个插件,直接打开页面,右键点击你想看的元素,选择xpath,就能看到地址了,很方便,一劳永逸
      

  3.   

    好难   你这个xml文档设计的不好啊,这样设计没法通过xpath筛选出你要的结果,除非用正则表达式。
    如果你要用xpath来筛选,你得这样设计<my:域 id=1><my:域 id=2>……标签一致,给属性编号
      

  4.   

    是哦 但是这个xml是infopath生成的 要是能加属性就好了,您的意思就是用Xpath是搞不定这个东西了。
      

  5.   

     恩 现在我不是要查单个元素的xpath
      

  6.   

    string xpath = "\\my:域{0}";做个循环 for(int i=1; i<11; i++) 把 域1~域10 都查一遍。
      

  7.   

    个人觉得xml结构做的不好,做的好的话用linq to xml很轻松
      

  8.   

    <my:域1><my:域2>
    你的这个要求是要域2域1之间是父子关系?
      

  9.   

    这xml结构设计的,真是奇葩啊