有下面格式的xml文件 
<root> 
<name> 
<address d="x" para="0">上海 </address> 
</name> 
<name> 
  <address>北京 </address> 
</name> 
</root> 
现在从外部输入数据假定为"上海",比对上了,那就根据上海将整行(<address d="x" para="0">上海 </address> )取出显示?
这该怎么做?

解决方案 »

  1.   

    namespace Console7
    {
        class Program
        {
            static void Main(string[] args)
            {
                //提示 读取 外部输入串
                Console.WriteLine("input a string");
                String input = Console.ReadLine();
                // 读取 xml            
                XmlDocument doc = new XmlDocument();
                //需要的内容保存到ArrayList 
                ArrayList list2 = new ArrayList();
                doc.Load(@"D:\1.xml");
                XmlNodeList list = doc.GetElementsByTagName("address");
                for (int i = 0; i < list.Count; i++)
                {
                    string value = list[i].InnerText;
                    if (value.Trim() == input.Trim())
                    {
                        list2.Add("Find " + (i+1).ToString() + "items :" + list[i].OuterXml);
                    }
                }
            }
        }
    }
      

  2.   


    XmlDocument xmlDoc = new XmlDocument();
    xmlDoc.Load("your file");
    string text = "上海";
    XmlNode node = xmlDoc.SelectSingleNode(String.Format("/root/name/address[text()='{0}']", text));
    if (node != null)
    {
        //todo
    }
      

  3.   

    xml都是有一定格式的,你可以在程序中写上<address d="x" para="0">$parm</address>
    用你的值替换$parm,输出就行了
      

  4.   

    XmlNodeList xnl=xmlDoc.SelectSingleNode("name").ChildNodes;foreach(XmlNode xn in xnl)
    {
    XmlElement xe=(XmlElement)xn;
    if(xe.InnerText=="")
    {
    //赋值
    }}
      

  5.   

    同意二楼的,用XPath来做更灵活