简体   繁体   English

如何通过使用xpath查询从XML文件中获取节点元素,

[英]how to fetch node elements from XML file by using xpath query,

i want to fetch elements through search pattern like if i type "an" then i want all elements which have "an" example =man, animal, fan, pant 我想通过搜索模式获取元素,例如,如果我键入“ an”,那么我想要所有具有“ an”的元素,例如= man,animal,fan,pant

this is my code here i use foreach loop to display all search elements but i don't want to use foreach loop just i want to fetch all the list directly form xpath query please help me out its very impotent for me 这是我的代码,我使用foreach循环显示所有搜索元素,但我不想使用foreach循环,只是我想直接从xpath查询中获取所有列表,请帮我解决一下对我来说很无用

private void Search2_Click_1(object sender, EventArgs e)
        {


            XmlNodeList nodes = myxml.DocumentElement.SelectNodes("/students/student/s_name" );

            string ha = search.Text;

            if (listbox11.Text == "Name")
            foreach(XmlNode node in nodes)
            {

                if(System.Text.RegularExpressions.Regex.IsMatch(node.InnerText,ha))
                { 
                    listBox1.Text += node.InnerText + "\r\n"; 
                }

            }

        }

Use this 用这个

private void Search2_Click_1(object sender, EventArgs e)
        {
  string ha = search.Text;

XmlNodeList nodes = myxml.DocumentElement.SelectNodes("/students/student/[contains(s_name,ha)]");

}

**The code which i write is simple, xpath query will fetch only related elements nodes but if you want to print then use foreach loop ** **我编写的代码很简单,xpath查询将仅获取相关元素节点,但是如果要打印,请使用foreach循环**

private void Search2_Click_1(object sender, EventArgs e) { 私人无效Search2_Click_1(对象发送者,EventArgs e){

       string ha = search.Text;

        if (listbox11.Text == "Name")
        {
            listBox1.Text = "";

            XmlNodeList nodes = myxml.DocumentElement.SelectNodes("//s_name[descendant-or-self::*[contains(.,'" + ha + "')]]");
            foreach (XmlNode node in nodes)
            {


                    listBox1.Text += node.InnerText + "\r\n";


            }
        }

    }

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM