日期:2014-05-19  浏览次数:20798 次

关于XML的查询
test>      
       <Name   type= "name1 ">      
         <pp>      
                            <code> S001 </code>      
           <aa> 长城酒店 </aa>      
         </pp>
                    <pp>      
                            <code> S002 </code>      
           <aa> 长城饭店 </aa>      
         </pp>    
         <pp>      
                            <code> S003 </code>      
           <aa> 长城大酒店 </aa>      
         </pp>      
            </Name>          
</test>      
我的数据库就是这么一个XML文件,当我在输入框中输入 "酒店 "时,我怎样得到1和3节点的“长城酒店”和“长城大酒店”的值呢,就想sql的like一样,我在网上查了查,看到XML的查询语言xql,请问我在C#中该怎么使用呢,或者尤其他的方法吗?请指教

------解决方案--------------------
找本书研究下Xpath的语法,用的少,无法帮助LZ
------解决方案--------------------
System.Xml.XmlDocument doc = new System.Xml.XmlDocument();
doc.LoadXml(@ " <test> <Name type= 'name1 '> <pp> <code> S001 </code>
       <aa> 长城酒店 </aa>
     </pp>
<pp>
<code> S002 </code>
       <aa> 长城饭店 </aa>
     </pp>
     <pp>
<code> S003 </code>
       <aa> 长城大酒店 </aa>
     </pp>
</Name>
</test> ");
string keyword= "酒店 ";
string xpath = "contains(string(aa), ' " + keyword + " ') ";
System.Xml.XmlNodeList nodes = doc.SelectNodes( "/test/Name/pp[ " +xpath + "]/code ");
foreach(System.Xml.XmlNode x in nodes)
{
Response.Write( " <li> " + x.InnerText);
}
------解决方案--------------------
曾经也头疼过这个问题,用xpath的话比较麻烦,另外是在C#中进行操作,
感觉可以这样,先把这个xml生成DataSet数据集,然后对这个DataSet数据集
进行操作,比如先对这个DataSet数据集进行循环验证,看哪些包含查询条件的
都写入到一个新的数据集中,然后用这个新的数据集绑定页面的列表。
------解决方案--------------------
孟子出现了....
------解决方案--------------------
感觉从可操作性上来讲,把它读到DataSet里比较好做,呵呵

是呀,孟子是人牛,呵呵