节点的XML节点到C#数组

时间:2014-09-10 09:18:57

标签: c# xml

我正在尝试从XML文件中获取文件位置,而不是硬编码最终可能发生变化的位置。

我不知道有多少文件会导致我的问题。

如何让这个函数迭代遍历所有节点并将它们复制到数组中的新索引?

更新

如果您不知道大小,有没有办法使用数组执行此操作,例如可能是ArrayList,或者将其放入列表并转换为数组?无论哪种方法都是最好的。

以下是我到目前为止编写的代码:

public static void LoadMyXML()
{
    string xmlfp = _AppPath + @"\Config";
    try
    {
        XmlDocument xDoc = new XmlDocument();
        xDoc.Load(xmlfp);
        XmlNode xmlLst = xDoc.SelectSingleNode("parent1/child1");
        string[] xmlNodeArray;

        foreach (XmlNode node in xmlLst.ChildNodes)
        {
            //read through and add any child nodes to the array
            xmlNodeArray[] = node.InnerText;
        }
    }
    catch(Exception ex)
    {
        WriteErrorToLog("XML Loading error " + ex.ToString());
    }
}

2 个答案:

答案 0 :(得分:5)

如果您不知道尺寸,可以使用List

List<string> xmlNodes = new List<string>();

foreach (XmlNode node in xmlLst.ChildNodes)
{
    xmlNodes.Add(node.InnerText);
}

除此之外,我建议您使用新的Linq to XML API。

答案 1 :(得分:-1)

yes to array

string[] output = xmlNodes.ToArray();