我现在想把下一个xml字符串的所有<Path>节点的内容放入一个string[]数组中,请问我该怎么做呢?有最简单的方法没?
------------------------------------
string data = @
"<Files>
<File>
<Path>2007/08/31/200783118012709799872943.jpg</Path>
<Desc>SoftDown</Desc>
<Order>3</Order>
<Size>12 KB</Size>
</File>
<File>
<Path>2007/08/31/200783118012756354308724.jpg</Path>
<Desc>SoftDown</Desc>
<Order>4</Order>
<Size>12</Size>
</File>
<File>
<Path>2007/08/31/200783017719286308162841.jpg</Path>
<Desc>SoftDown</Desc>
<Order>5</Order>
<Size>12 KB</Size>
</File>
....
</Files>";

解决方案 »

  1.   


            public string[] GetDbValueFromXml(string sUpHTMLName,string sUpDBName, string strCol, string sSourceWebsite, int productType, string sProductTypeText, int snatchID)
            {
                string[] arr = null;
                string str = "";
                string strXPath = "//Product[@type='" + sProductTypeText + "' and @webURL='" + sSourceWebsite + "']/DBField/HtmlField[@name='" + sUpHTMLName + "']/ValueRelations/Relation";
                XmlNodeList xList = xmlDoc.SelectNodes(strXPath);//节点列表
                if (xList != null)
                {
                    
                    foreach (XmlNode xn in xList)
                    {
                        XmlElement xe = (XmlElement)xn;
                        string sAttName = xe.GetAttribute("htmlValue");
                        str += sAttName + ",";
                     }
                     
                     arr = str.Split(",");
                                      
                }
                return arr;
            }
      

  2.   

    //加载XML文件
                xmlDoc = new XmlDocument();
                xmlDoc.Load(xmlConnectionStr);
      

  3.   

    int i = 0;
            XmlDocument xmldoc = new XmlDocument();
            xmldoc.Load(Server.MapPath("data.xml"));
            XmlNodeList xmllist = xmldoc.SelectNodes("//Files/File");
            string[] a = new string [xmllist.Count];
            foreach (XmlNode xmlnode in xmllist)
            {
                a[i] = xmlnode.SelectSingleNode("Path").InnerText;
                i++;
            }
      

  4.   

    using System.Xml;
    记得加这句
      

  5.   

    如果 我把这个xml字符串绑定到了XmlDataSource控件,
    那么我可以用什么简便方法把所有<Path>节点的内容放入一个string[]数组中吗?
      

  6.   

    上面的两种方法都是操作xml文档的,不是我想要的,而我要的是操作"XML格式相同的字符串";
    string data = @
    "<Files>
    <File>
    <Path>2007/08/31/200783118012709799872943.jpg</Path>
    <Desc>SoftDown</Desc>
    <Order>3</Order>
    <Size>12 KB</Size>
    </File>
    ....
    </Files>";
      

  7.   

    string data = @"....";
    StringReader sr = new StringReader(data);XmlDocument doc = new XmlDocument();
    doc.Load(sr);
    string[] strs = new string[lst.Count];
    XmlNodeList lst = doc.SelectNodes("//Path");
    for(int i=0;i<lst.Count;i++)
    {
       strs[i] = lst[i].InnerText;
    }
      

  8.   

    using System.Xml;
    using System.IO; int i = 0;
            string xml = @"<Files>
      <File>
        <Path>2007/08/31/200783118012709799872943.jpg</Path>
        <Desc>SoftDown</Desc>
        <Order>3</Order>
        <Size>12 KB</Size>
      </File>
      <File>
        <Path>2007/08/31/200783118012756354308724.jpg</Path>
        <Desc>SoftDown</Desc>
        <Order>4</Order>
        <Size>12</Size>
      </File>
      <File>
        <Path>2007/08/31/200783017719286308162841.jpg</Path>
        <Desc>SoftDown</Desc>
        <Order>5</Order>
        <Size>12 KB</Size>
      </File>
    </Files>";
            XmlDocument xmldoc = new XmlDocument();
            StringReader sr = new StringReader(xml);
            xmldoc.Load(sr);
            XmlNodeList xmllist = xmldoc.SelectNodes("//Files/File");
            string[] a = new string [xmllist.Count];
            foreach (XmlNode xmlnode in xmllist)
            {
                a[i] = xmlnode.SelectSingleNode("Path").InnerText;
                i++;
            }
            for (i = 0; i < xmllist.Count; i++)
            {
                Response.Write(a[i]);
                Response.Write("<br />");
            }
    是这样的么?