这个Xpath查询如何写?
XML code
<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>
请问高手该如何写??
------解决方案--------------------
你这个xml文档设计的不好啊,这样设计没法通过xpath筛选出你要的结果,除非用正则表达式。
如果你要用xpath来筛选,你得这样设计<my:域 id=1><my:域 id=2>……标签一致,给属性编号。
------解决方案--------------------把页面创建好,用firefox,安装xpather这个插件,直接打开页面,右键点击你想看的元素,选择xpath,就能看到地址了,很方便,一劳永逸
------解决方案--------------------好难 你这个xml文档设计的不好啊,这样设计没法通过xpath筛选出你要的结果,除非用正则表达式。
如果你要用xpath来筛选,你得这样设计<my:域 id=1><my:域 id=2>……标签一致,给属性编号
------解决方案--------------------string xpath = "\\my:域{0}";
做个循环 for(int i=1; i<11; i++) 把 域1~域10 都查一遍。
------解决方案--------------------个人觉得xml结构做的不好,做的好的话用linq to xml很轻松
------解决方案--------------------<my:域1><my:域2>
你的这个要求是要域2域1之间是父子关系?