Skip to content

Instantly share code, notes, and snippets.

@evandrix
Created July 13, 2011 17:30
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save evandrix/1080811 to your computer and use it in GitHub Desktop.
Save evandrix/1080811 to your computer and use it in GitHub Desktop.
XMLParser
<MenuDataResult>
<Item>
<Item>
<ItemID>19</ItemID>
<ItemType>Submenu</ItemType>
<ItemSubType>0</ItemSubType>
<ItemTitle>CIFFCO</ItemTitle>
<ItemImage>
</ItemImage>
<ItemImageOverride>False</ItemImageOverride>
<Menu>
<ID>19</ID>
<Title>CIFFCO</Title>
<Template>
</Template>
<Type>Menu</Type>
<Link>
</Link>
<ParentID>0</ParentID>
<AncestorID>19</AncestorID>
<FolderID>0</FolderID>
<Description>
</Description>
<Image>
</Image>
<ImageOverride>False</ImageOverride>
<Item>
<ItemID>20</ItemID>
<ItemType>Submenu</ItemType>
<ItemSubType>0</ItemSubType>
<ItemTitle>BottomLinks1</ItemTitle>
<ItemImage>
</ItemImage>
<ItemImageOverride>False</ItemImageOverride>
<Menu>
<ID>20</ID>
<Title>BottomLinks1</Title>
<Template>
</Template>
<Type>content</Type>
<Link>
</Link>
<ParentID>19</ParentID>
<AncestorID>19</AncestorID>
<FolderID>0</FolderID>
<Description>
</Description>
<Image>
</Image>
<ImageOverride>False</ImageOverride>
<Item>
<ItemID>68</ItemID>
<ItemType>content</ItemType>
<ItemSubType>1</ItemSubType>
<ItemTitle>Accueil</ItemTitle>
<ItemImage>
</ItemImage>
<ItemImageOverride>False</ItemImageOverride>
<ItemLink>/ciffco/</ItemLink>
<ItemTarget>2</ItemTarget>
</Item>
<Item>
<ItemID>21</ItemID>
<ItemType>Submenu</ItemType>
<ItemSubType>0</ItemSubType>
<ItemTitle>Groupe Eurotunnel</ItemTitle>
<ItemImage>
</ItemImage>
<ItemImageOverride>False</ItemImageOverride>
<Menu>
<ID>21</ID>
<Title>Groupe Eurotunnel</Title>
<Template>
</Template>
<Type>content</Type>
<Link>/fr/groupe-eurotunnel/index/</Link>
<ParentID>20</ParentID>
<AncestorID>19</AncestorID>
<FolderID>0</FolderID>
<Description>Eurotunnel Group</Description>
<Image>
</Image>
<ImageOverride>False</ImageOverride>
<Item>
<ItemID>66</ItemID>
<ItemType>ExternalLink</ItemType>
<ItemSubType>0</ItemSubType>
<ItemTitle>Notre activité</ItemTitle>
<ItemImage>
</ItemImage>
<ItemImageOverride>False</ItemImageOverride>
<ItemLink>/fr/groupe-eurotunnel/notre-activite/</ItemLink>
<ItemTarget>2</ItemTarget>
</Item>
<Item>
<ItemID>67</ItemID>
<ItemType>ExternalLink</ItemType>
<ItemSubType>0</ItemSubType>
<ItemTitle>Gouvernement d'entreprise</ItemTitle>
<ItemImage>
</ItemImage>
<ItemImageOverride>False</ItemImageOverride>
<ItemLink>/fr/groupe-eurotunnel/gouvernement-d-entreprise/</ItemLink>
<ItemTarget>2</ItemTarget>
</Item>
<Item>
<ItemID>68</ItemID>
<ItemType>ExternalLink</ItemType>
<ItemSubType>0</ItemSubType>
<ItemTitle>L'exploitation</ItemTitle>
<ItemImage>
</ItemImage>
<ItemImageOverride>False</ItemImageOverride>
<ItemLink>/fr/groupe-eurotunnel/exploitation/</ItemLink>
<ItemTarget>2</ItemTarget>
</Item>
<Item>
<ItemID>69</ItemID>
<ItemType>ExternalLink</ItemType>
<ItemSubType>0</ItemSubType>
<ItemTitle>Développement durable</ItemTitle>
<ItemImage>
</ItemImage>
<ItemImageOverride>False</ItemImageOverride>
<ItemLink>/fr/groupe-eurotunnel/developpement-durable/</ItemLink>
<ItemTarget>2</ItemTarget>
</Item>
</Menu>
</Item>
</Menu>
</Item>
<Item>
<ItemID>22</ItemID>
<ItemType>Submenu</ItemType>
<ItemSubType>0</ItemSubType>
<ItemTitle>BottomLinks2</ItemTitle>
<ItemImage>
</ItemImage>
<ItemImageOverride>False</ItemImageOverride>
<Menu>
<ID>22</ID>
<Title>BottomLinks2</Title>
<Template>
</Template>
<Type>content</Type>
<Link>
</Link>
<ParentID>19</ParentID>
<AncestorID>19</AncestorID>
<FolderID>0</FolderID>
<Description>
</Description>
<Image>
</Image>
<ImageOverride>False</ImageOverride>
<Item>
<ItemID>23</ItemID>
<ItemType>Submenu</ItemType>
<ItemSubType>0</ItemSubType>
<ItemTitle>Actionnaires et Investisseurs</ItemTitle>
<ItemImage>
</ItemImage>
<ItemImageOverride>False</ItemImageOverride>
<Menu>
<ID>23</ID>
<Title>Actionnaires et Investisseurs</Title>
<Template>
</Template>
<Type>content</Type>
<Link>/fr/actionnaires-investisseurs/index/</Link>
<ParentID>22</ParentID>
<AncestorID>19</AncestorID>
<FolderID>0</FolderID>
<Description>
</Description>
<Image>
</Image>
<ImageOverride>False</ImageOverride>
<Item>
<ItemID>72</ItemID>
<ItemType>ExternalLink</ItemType>
<ItemSubType>0</ItemSubType>
<ItemTitle>Cours des titres</ItemTitle>
<ItemImage>
</ItemImage>
<ItemImageOverride>False</ItemImageOverride>
<ItemLink>/fr/actionnaires-investisseurs/cours-des-titres/</ItemLink>
<ItemTarget>2</ItemTarget>
</Item>
<Item>
<ItemID>73</ItemID>
<ItemType>ExternalLink</ItemType>
<ItemSubType>0</ItemSubType>
<ItemTitle>Chiffres clés</ItemTitle>
<ItemImage>
</ItemImage>
<ItemImageOverride>False</ItemImageOverride>
<ItemLink>/fr/actionnaires-investisseurs/chiffres-cles/</ItemLink>
<ItemTarget>2</ItemTarget>
</Item>
<Item>
<ItemID>74</ItemID>
<ItemType>ExternalLink</ItemType>
<ItemSubType>0</ItemSubType>
<ItemTitle>Publications</ItemTitle>
<ItemImage>
</ItemImage>
<ItemImageOverride>False</ItemImageOverride>
<ItemLink>/fr/actionnaires-investisseurs/publications/</ItemLink>
<ItemTarget>2</ItemTarget>
</Item>
<Item>
<ItemID>75</ItemID>
<ItemType>ExternalLink</ItemType>
<ItemSubType>0</ItemSubType>
<ItemTitle>Guide de l'actionnaire</ItemTitle>
<ItemImage>
</ItemImage>
<ItemImageOverride>False</ItemImageOverride>
<ItemLink>/fr/actionnaires-investisseurs/guide-de-l-actionnaire/</ItemLink>
<ItemTarget>2</ItemTarget>
</Item>
<Item>
<ItemID>76</ItemID>
<ItemType>ExternalLink</ItemType>
<ItemSubType>0</ItemSubType>
<ItemTitle>Assemblées générales</ItemTitle>
<ItemImage>
</ItemImage>
<ItemImageOverride>False</ItemImageOverride>
<ItemLink>/fr/actionnaires-investisseurs/assemblees-generales/</ItemLink>
<ItemTarget>2</ItemTarget>
</Item>
<Item>
<ItemID>77</ItemID>
<ItemType>ExternalLink</ItemType>
<ItemSubType>0</ItemSubType>
<ItemTitle>Informations réglementées</ItemTitle>
<ItemImage>
</ItemImage>
<ItemImageOverride>False</ItemImageOverride>
<ItemLink>/fr/actionnaires-investisseurs/get-sa/informations-reglementees/</ItemLink>
<ItemTarget>2</ItemTarget>
</Item>
<Item>
<ItemID>78</ItemID>
<ItemType>ExternalLink</ItemType>
<ItemSubType>0</ItemSubType>
<ItemTitle>Calendrier financier</ItemTitle>
<ItemImage>
</ItemImage>
<ItemImageOverride>False</ItemImageOverride>
<ItemLink>/fr/actionnaires-investisseurs/agenda/calendrier-financier/</ItemLink>
<ItemTarget>2</ItemTarget>
</Item>
<Item>
<ItemID>79</ItemID>
<ItemType>ExternalLink</ItemType>
<ItemSubType>0</ItemSubType>
<ItemTitle>Archives GET SA</ItemTitle>
<ItemImage>
</ItemImage>
<ItemImageOverride>False</ItemImageOverride>
<ItemLink>/fr/actionnaires-investisseurs/archives-get-sa/</ItemLink>
<ItemTarget>2</ItemTarget>
</Item>
<Item>
<ItemID>80</ItemID>
<ItemType>ExternalLink</ItemType>
<ItemSubType>0</ItemSubType>
<ItemTitle>Archives TNU</ItemTitle>
<ItemImage>
</ItemImage>
<ItemImageOverride>False</ItemImageOverride>
<ItemLink>/fr/actionnaires-investisseurs/archives-tnu/index/</ItemLink>
<ItemTarget>2</ItemTarget>
</Item>
</Menu>
</Item>
<Item>
<ItemID>24</ItemID>
<ItemType>Submenu</ItemType>
<ItemSubType>0</ItemSubType>
<ItemTitle>Média</ItemTitle>
<ItemImage>
</ItemImage>
<ItemImageOverride>False</ItemImageOverride>
<Menu>
<ID>24</ID>
<Title>Média</Title>
<Template>
</Template>
<Type>content</Type>
<Link>/fr/medias/index/</Link>
<ParentID>22</ParentID>
<AncestorID>19</AncestorID>
<FolderID>0</FolderID>
<Description>
</Description>
<Image>
</Image>
<ImageOverride>False</ImageOverride>
<Item>
<ItemID>82</ItemID>
<ItemType>ExternalLink</ItemType>
<ItemSubType>0</ItemSubType>
<ItemTitle>Communiqués de presse 2011</ItemTitle>
<ItemImage>
</ItemImage>
<ItemImageOverride>False</ItemImageOverride>
<ItemLink>/fr/medias/communiques-de-presse/</ItemLink>
<ItemTarget>2</ItemTarget>
</Item>
<Item>
<ItemID>83</ItemID>
<ItemType>ExternalLink</ItemType>
<ItemSubType>0</ItemSubType>
<ItemTitle>Archives des communiqués de presse</ItemTitle>
<ItemImage>
</ItemImage>
<ItemImageOverride>False</ItemImageOverride>
<ItemLink>/fr/medias/communiques/archives/</ItemLink>
<ItemTarget>2</ItemTarget>
</Item>
<Item>
<ItemID>84</ItemID>
<ItemType>ExternalLink</ItemType>
<ItemSubType>0</ItemSubType>
<ItemTitle>Contacts Media</ItemTitle>
<ItemImage>
</ItemImage>
<ItemImageOverride>False</ItemImageOverride>
<ItemLink>/fr/medias/mediatheque/media-contacts/</ItemLink>
<ItemTarget>2</ItemTarget>
</Item>
<Item>
<ItemID>85</ItemID>
<ItemType>ExternalLink</ItemType>
<ItemSubType>0</ItemSubType>
<ItemTitle>Médiathèque</ItemTitle>
<ItemImage>
</ItemImage>
<ItemImageOverride>False</ItemImageOverride>
<ItemLink>/fr/medias/mediatheque/index/</ItemLink>
<ItemTarget>2</ItemTarget>
</Item>
</Menu>
</Item>
</Menu>
</Item>
<Item>
<ItemID>25</ItemID>
<ItemType>Submenu</ItemType>
<ItemSubType>0</ItemSubType>
<ItemTitle>BottomLinks3</ItemTitle>
<ItemImage>
</ItemImage>
<ItemImageOverride>False</ItemImageOverride>
<Menu>
<ID>25</ID>
<Title>BottomLinks3</Title>
<Template>
</Template>
<Type>content</Type>
<Link>
</Link>
<ParentID>19</ParentID>
<AncestorID>19</AncestorID>
<FolderID>0</FolderID>
<Description>
</Description>
<Image>
</Image>
<ImageOverride>False</ImageOverride>
<Item>
<ItemID>26</ItemID>
<ItemType>Submenu</ItemType>
<ItemSubType>0</ItemSubType>
<ItemTitle>Le Tunnel sous la Manche</ItemTitle>
<ItemImage>
</ItemImage>
<ItemImageOverride>False</ItemImageOverride>
<Menu>
<ID>26</ID>
<Title>Le Tunnel sous la Manche</Title>
<Template>
</Template>
<Type>content</Type>
<Link>/fr/le-tunnel-sous-la-manche/index/</Link>
<ParentID>25</ParentID>
<AncestorID>19</AncestorID>
<FolderID>0</FolderID>
<Description>
</Description>
<Image>
</Image>
<ImageOverride>False</ImageOverride>
<Item>
<ItemID>88</ItemID>
<ItemType>ExternalLink</ItemType>
<ItemSubType>0</ItemSubType>
<ItemTitle>L'histoire</ItemTitle>
<ItemImage>
</ItemImage>
<ItemImageOverride>False</ItemImageOverride>
<ItemLink>/fr/le-tunnel-sous-la-manche/histoire/</ItemLink>
<ItemTarget>2</ItemTarget>
</Item>
<Item>
<ItemID>89</ItemID>
<ItemType>ExternalLink</ItemType>
<ItemSubType>0</ItemSubType>
<ItemTitle>Les infrastructures</ItemTitle>
<ItemImage>
</ItemImage>
<ItemImageOverride>False</ItemImageOverride>
<ItemLink>/fr/le-tunnel-sous-la-manche/infrastructure/</ItemLink>
<ItemTarget>2</ItemTarget>
</Item>
<Item>
<ItemID>90</ItemID>
<ItemType>ExternalLink</ItemType>
<ItemSubType>0</ItemSubType>
<ItemTitle>Rénovation de l'intervalle 6</ItemTitle>
<ItemImage>
</ItemImage>
<ItemImageOverride>False</ItemImageOverride>
<ItemLink>/fr/le-tunnel-sous-la-manche/renovation-intervalle/</ItemLink>
<ItemTarget>2</ItemTarget>
</Item>
<Item>
<ItemID>91</ItemID>
<ItemType>ExternalLink</ItemType>
<ItemSubType>0</ItemSubType>
<ItemTitle>Matériel roulant</ItemTitle>
<ItemImage>
</ItemImage>
<ItemImageOverride>False</ItemImageOverride>
<ItemLink>/fr/le-tunnel-sous-la-manche/materiel-roulant/</ItemLink>
<ItemTarget>2</ItemTarget>
</Item>
<Item>
<ItemID>92</ItemID>
<ItemType>ExternalLink</ItemType>
<ItemSubType>0</ItemSubType>
<ItemTitle>Maintenance</ItemTitle>
<ItemImage>
</ItemImage>
<ItemImageOverride>False</ItemImageOverride>
<ItemLink>/fr/le-tunnel-sous-la-manche/maintenance/</ItemLink>
<ItemTarget>2</ItemTarget>
</Item>
<Item>
<ItemID>93</ItemID>
<ItemType>ExternalLink</ItemType>
<ItemSubType>0</ItemSubType>
<ItemTitle>Glossaire</ItemTitle>
<ItemImage>
</ItemImage>
<ItemImageOverride>False</ItemImageOverride>
<ItemLink>/fr/le-tunnel-sous-la-manche/glossaire/</ItemLink>
<ItemTarget>2</ItemTarget>
</Item>
</Menu>
</Item>
</Menu>
</Item>
<Item>
<ItemID>27</ItemID>
<ItemType>Submenu</ItemType>
<ItemSubType>0</ItemSubType>
<ItemTitle>BottomLinks4</ItemTitle>
<ItemImage>
</ItemImage>
<ItemImageOverride>False</ItemImageOverride>
<Menu>
<ID>27</ID>
<Title>BottomLinks4</Title>
<Template>
</Template>
<Type>content</Type>
<Link>
</Link>
<ParentID>19</ParentID>
<AncestorID>19</AncestorID>
<FolderID>0</FolderID>
<Description>
</Description>
<Image>
</Image>
<ImageOverride>False</ImageOverride>
<Item>
<ItemID>28</ItemID>
<ItemType>Submenu</ItemType>
<ItemSubType>0</ItemSubType>
<ItemTitle>Fournisseurs</ItemTitle>
<ItemImage>
</ItemImage>
<ItemImageOverride>False</ItemImageOverride>
<Menu>
<ID>28</ID>
<Title>Fournisseurs</Title>
<Template>
</Template>
<Type>content</Type>
<Link>/fr/fournisseurs/index/</Link>
<ParentID>27</ParentID>
<AncestorID>19</AncestorID>
<FolderID>0</FolderID>
<Description>
</Description>
<Image>
</Image>
<ImageOverride>False</ImageOverride>
<Item>
<ItemID>96</ItemID>
<ItemType>ExternalLink</ItemType>
<ItemSubType>0</ItemSubType>
<ItemTitle>La politique Achats</ItemTitle>
<ItemImage>
</ItemImage>
<ItemImageOverride>False</ItemImageOverride>
<ItemLink>/fr/fournisseurs/politique-achats/</ItemLink>
<ItemTarget>2</ItemTarget>
</Item>
<Item>
<ItemID>97</ItemID>
<ItemType>ExternalLink</ItemType>
<ItemSubType>0</ItemSubType>
<ItemTitle>Les achats</ItemTitle>
<ItemImage>
</ItemImage>
<ItemImageOverride>False</ItemImageOverride>
<ItemLink>/fr/fournisseurs/achats/</ItemLink>
<ItemTarget>2</ItemTarget>
</Item>
<Item>
<ItemID>98</ItemID>
<ItemType>ExternalLink</ItemType>
<ItemSubType>0</ItemSubType>
<ItemTitle>Devenir fournisseur</ItemTitle>
<ItemImage>
</ItemImage>
<ItemImageOverride>False</ItemImageOverride>
<ItemLink>/fr/fournisseurs/devenir-fournisseur/</ItemLink>
<ItemTarget>2</ItemTarget>
</Item>
<Item>
<ItemID>99</ItemID>
<ItemType>ExternalLink</ItemType>
<ItemSubType>0</ItemSubType>
<ItemTitle>Marchés et opportunités</ItemTitle>
<ItemImage>
</ItemImage>
<ItemImageOverride>False</ItemImageOverride>
<ItemLink>/fr/fournisseurs/marches-et-opportunites/</ItemLink>
<ItemTarget>2</ItemTarget>
</Item>
</Menu>
</Item>
<Item>
<ItemID>100</ItemID>
<ItemType>ExternalLink</ItemType>
<ItemSubType>0</ItemSubType>
<ItemTitle>Contactez-nous</ItemTitle>
<ItemImage>
</ItemImage>
<ItemImageOverride>False</ItemImageOverride>
<ItemLink>/fr/contact/</ItemLink>
<ItemTarget>2</ItemTarget>
</Item>
<Item>
<ItemID>101</ItemID>
<ItemType>ExternalLink</ItemType>
<ItemSubType>0</ItemSubType>
<ItemTitle>Mentions légales</ItemTitle>
<ItemImage>
</ItemImage>
<ItemImageOverride>False</ItemImageOverride>
<ItemLink>/fr/legal/</ItemLink>
<ItemTarget>2</ItemTarget>
</Item>
</Menu>
</Item>
</Menu>
</Item>
</Item>
</MenuDataResult>
using System.Xml;
using System.IO;
using System.Collections.Generic;
using System.Web.UI;
using System;
using System.Linq;
using System.Text;
using System.Web;
using System.Web.Configuration;
using System.Web.UI.WebControls;
using System.Collections;
namespace ReadXMLfromFile
{
/// <summary>
/// Summary description for Class1.
/// </summary>
class Class1
{
static void Main(string[] args)
{
XmlDocument xml = new XmlDocument();
xml.Load("debug.log");
XmlNodeList menuItems = xml.SelectNodes("/MenuDataResult/Item/Item/Menu/Item/Menu/Item");
int i = 0;
foreach (XmlNode node in menuItems)
{
if (i == 2) break;
if (i == 1)
{
XmlNodeList subMenuItems = node.SelectNodes("./Menu/Item");
if (subMenuItems.Count > 0)
{
XmlNode menu = xml.CreateElement("Menu");
// required fields
menu.AppendChild(xml.CreateElement("Link"));
menu.AppendChild(xml.CreateElement("Description"));
int index = 0;
foreach (XmlNode subMenuItem in subMenuItems)
{
menu.AppendChild(index == 0 ? subMenuItem.Clone() : subMenuItem);
index++;
}
subMenuItems[0].AppendChild(menu);
}
}
i++;
}
i = 0;
foreach (XmlNode node in menuItems)
{
if (i == 2) return;
if (i == 1) Console.WriteLine(ToString(node));
Console.WriteLine("===");
i++;
}
}
private static string ToString(XmlNode myXmlNode)
{
// write the node to a stream to automatically pretty format it
XmlNodeReader xnr = new XmlNodeReader(myXmlNode);
MemoryStream myStream = new MemoryStream();
XmlTextWriter xtw = new XmlTextWriter(myStream, System.Text.Encoding.UTF8);
xtw.Formatting = Formatting.Indented;
xtw.WriteNode(xnr, true);
xtw.Flush();
// read it back into a string
myStream.Position = 0;
StreamReader sr = new StreamReader(myStream, System.Text.Encoding.UTF8);
string myTabbedXmlString = sr.ReadToEnd();
// clean up
sr.Close();
xtw = null;
myStream.Close();
xnr.Close();
return myTabbedXmlString;
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment