比如我有个一个XML文件,大概格式
<Total>
<Term>
<ID>1<ID>
<kcn>中文关键字<kcn>
<ken>英文关键字<ken>
</Term>
<Term>
<ID>2<ID>
<kcn>中文说明<kcn>
<ken>英文说明<ken>
</Term>
<Term>
<ID>3<ID>
<kcn>中文图书<kcn>
<ken>英文图书<ken>
</Term>
<Term>
<ID>4<ID>
<kcn>其他<kcn>
<ken>其他<ken>
</Term>
<Term>
<ID>5<ID>
<kcn>其他中文<kcn>
<ken>其他英文<ken>
</Term>
</Total>请问 在前台查询 kcn节点中的内容带有中文的就全部显示出来应该怎么做呢?
比如 KCN=中文,那么
<ID>1<ID>
<kcn>中文关键字<kcn>
<ken>英文关键字<ken>
<ID>2<ID>
<kcn>中文说明<kcn>
<ken>英文说明<ken>
<ID>3<ID>
<kcn>中文图书<kcn>
<ken>英文图书<ken>
<ID>5<ID>
<kcn>其他中文<kcn>
<ken>其他英文<ken> 的内容都会被显示
<Total>
<Term>
<ID>1<ID>
<kcn>中文关键字<kcn>
<ken>英文关键字<ken>
</Term>
<Term>
<ID>2<ID>
<kcn>中文说明<kcn>
<ken>英文说明<ken>
</Term>
<Term>
<ID>3<ID>
<kcn>中文图书<kcn>
<ken>英文图书<ken>
</Term>
<Term>
<ID>4<ID>
<kcn>其他<kcn>
<ken>其他<ken>
</Term>
<Term>
<ID>5<ID>
<kcn>其他中文<kcn>
<ken>其他英文<ken>
</Term>
</Total>请问 在前台查询 kcn节点中的内容带有中文的就全部显示出来应该怎么做呢?
比如 KCN=中文,那么
<ID>1<ID>
<kcn>中文关键字<kcn>
<ken>英文关键字<ken>
<ID>2<ID>
<kcn>中文说明<kcn>
<ken>英文说明<ken>
<ID>3<ID>
<kcn>中文图书<kcn>
<ken>英文图书<ken>
<ID>5<ID>
<kcn>其他中文<kcn>
<ken>其他英文<ken> 的内容都会被显示
doc.Load(Server.MapPath("XMLFile4.xml"));
XmlNode root = doc.DocumentElement;
string str = "";
foreach (XmlNode xnode in root.ChildNodes)
{
if(xnode.InnerText.IndexOf("中文")>-1)
str+=xnode.InnerText;
}
Label1.Text=str.Replace("\n","<br />");
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
XmlDocument dom = new XmlDocument();
XmlNodeList nodeList;
dom.LoadXml(@"<Total>
<Term>
<ID>1</ID>
<kcn>中文关键字</kcn>
<ken>英文关键字</ken>
</Term>
<Term>
<ID>2</ID>
<kcn>中文说明</kcn>
<ken>英文说明</ken>
</Term>
<Term>
<ID>3</ID>
<kcn>中文图书</kcn>
<ken>英文图书</ken>
</Term>
<Term>
<ID>4</ID>
<kcn>其他</kcn>
<ken>其他</ken>
</Term>
<Term>
<ID>5</ID>
<kcn>其他中文</kcn>
<ken>其他英文</ken>
</Term>
</Total>");
nodeList = dom.SelectNodes("//Term[contains(.,'中文')]");
foreach (XmlNode node in nodeList)
{
Console.WriteLine(node.InnerText);
}
Console.ReadLine();
/*输出如下
* 1中文关键字英文关键字
* 2中文说明英文说明
* 3中文图书英文图书
* 5其他中文其他英文*/
}
}
}