Archivio

Archivio per febbraio 2008

C#: leggere ricorsivamente un XML

22 febbraio 2008 zaragon Nessun commento

Ecco una simpatica funzione ricorsiva implementata oggi per leggere ricorsivamente un XML.

/// <summary>
/// Processa sottonodi ricorsivamente
/// </summary>
/// <param name="node">nodo padre</param>
private void ProcessaSottoNodi(XmlNode node)
{
    if (node.HasChildNodes)
    {
        foreach (XmlNode cNode in node.ChildNodes)
        {
            foreach (XmlAttribute attr in cNode.Attributes)
                Console.WriteLine("{0}", attr.Name + " = " + attr.InnerText);

            Console.WriteLine("-------------------------------");
            ProcessaSottoNodi(cNode);
        }
    }
}

 

E questo è un XML di esempio col quale potete testare il metodo:

<node level="1" desc="desc 1" query="" dbQuery="">
    <node desc="desc 2" query="query 2" dbQuery="aaa">
        <node desc="desc 3" query="query 3" dbQuery="aaa">
            <node desc="desc 4" query="query 4" dbQuery="aaa">
                <node desc="desc 5" query="query 5" dbQuery="aaa">
                    <node desc="desc 6" query="query 6" dbQuery="aaa">
                        <node desc="desc 7" query="query 7" dbQuery="aaa">
                            <node desc="desc 8" query="query 8" dbQuery="aaa">
                            </node>
                        </node>
                    </node>
                </node>
            </node>
        </node>
    </node>
</node>

Categorie:C# Tag: ,