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

如何查找xml
我自定义的xml如下。该如何查找。
我是新人,手里暂时没书,见谅。。
内容:举个例子。
<?xml   version=\ "1.0\ "   encoding=\ "utf-8\ "?>
<Xmlmessage>
<message>
<id> 123 </id>
<content> 你好 </content>
</message>
<message>
<id> 456 </id>
<content> 你好吗 </content>
</message>
</Xmlmessage>
我得到这个xml后。比如想查找message里面相应ID的内容,比如我想找ID为123的内容,就得到 "你好 "。

------解决方案--------------------
string xxml = " <?xml version=\ "1.0\ " encoding=\ "utf-8\ "?> <Xmlmessage> <message> <id> 123 </id> <content> 你好 </content> </message> <message> <id> 456 </id> <content> 你好吗 </content> </message> </Xmlmessage> ";
XmlDocument xdoc = new XmlDocument();
xdoc.LoadXml(xxml);
XmlNode Xmlmessage = xdoc.SelectSingleNode( "Xmlmessage ");
XmlNodeList xnlist = Xmlmessage.SelectNodes( "message ");
string msID = string.Empty;
foreach (XmlNode nd in xnlist)
{
msID = nd.SelectSingleNode( "id ").InnerText;
//Response.Write(msID + " <br/> ");
}
------解决方案--------------------
System.Xml.XmlDocument doc = new System.Xml.XmlDocument();
doc.LoadXml( " <Xmlmessage> <message> <id> 123 </id> <content> 你好 </content> </message> <message> <id> 456 </id> <content> 你好吗 </content> </message> </Xmlmessage> ");
string keyword= "123 ";
string xpath = "contains(string(id), ' " + keyword + " ') ";
System.Xml.XmlNodeList nodes = doc.SelectNodes( "/Xmlmessage/message[ " +xpath + "]/content ");
foreach(System.Xml.XmlNode x in nodes)
{
string str = x.InnerText;
}