Læser alle informationer fra XML
Jeg har en XML som ser sådan ud:<string>
<guidedenmark>
<content>
<product requeststatus="O">
<identity>
<productareaname>Aktiviteter</productareaname>
<productdefinitionname>Shopping</productdefinitionname>
<internalname>Anytime</internalname>
<uuid>570</uuid>
<currentstatus>O</currentstatus>
<organisationcsid>61</organisationcsid>
<organisationdisplayname>Tønder Turistbureau</organisationdisplayname>
<organisationurl>http://www.tonder.dk</organisationurl>
<organisationemail>r@r.dk</organisationemail>
</identity>
<changelog>
<createdbycsid>54</createdbycsid>
<createddate>2009-01-03T15:55:38</createddate>
<lastmodifiedbycsid>44</lastmodifiedbycsid>
<lastmodifieddate>2010-11-29T14:23:07</lastmodifieddate>
<approvedbycsid>54</approvedbycsid>
<approveddate>2010-11-29T14:23:07</approveddate>
</changelog>
<address>
<place />
<road>Storegade </road>
<housenumber>18</housenumber>
<floor />
<side />
<subcity />
<postalcode>6780</postalcode>
<city>Skærbæk</city>
<country />
<geocodex>485050,414465534</geocodex>
<geocodey>6112636,47891116</geocodey>
<latitude>55.158287</latitude>
<longitude>8.764077</longitude>
</address>
<belongtocities>
<belongtocity>Skærbæk</belongtocity>
</belongtocities>
<facilities>
<facility isrequired="true" sortorder="0">
<productdefinitionname>Shopping</productdefinitionname>
<internalname>Navn</internalname>
<value>
<text type="varchar512" maxlength="512">
<localversion culture="da-dk">Anytime</localversion>
<localversion culture="en-gb">Anytime</localversion>
<localversion culture="de-de">Anytime</localversion>
</text>
</value>
</facility>
<facility isrequired="true" iscomposite="true" sortorder="0">
<productdefinitionname>Shopping</productdefinitionname>
<internalname>Globale felter</internalname>
<facility isrequired="true" sortorder="0">
<productdefinitionname>Shopping</productdefinitionname>
<internalname>Beskrivelse</internalname>
<value>
<text type="text" maxlength="16392">
<localversion culture="da-dk">Køb dine smykker hos os.</localversion>
<localversion culture="en-gb">Buy your jewelry at Anytime.</localversion>
<localversion culture="de-de">Kaufen Sie Ihren Schmuck bei uns.</localversion>
</text>
</value>
</facility>
<facility sortorder="0">
<productdefinitionname>Shopping</productdefinitionname>
<internalname>Primær billede</internalname>
<value>
<binary type="binary.base64" size="1024" mimetype="image/jpeg" alttext="">4AAQSkZJRgABAgAAZABkAAD</binary>
</value>
</facility>
<facility sortorder="0">
<productdefinitionname>Shopping</productdefinitionname>
<internalname>Sekundær billede</internalname>
<value>
<binary type="binary.base64" size="-1" mimetype="" alttext="" />
</value>
</facility>
<facility isrequired="true" sortorder="0">
<productdefinitionname>Shopping</productdefinitionname>
<internalname>Billede 1</internalname>
<value>
<binary type="binary.base64" size="5949" mimetype="image/jpeg" >4AAQSkZJRgABAgAAZABkAAD</binary>
</value>
</facility>
<facility sortorder="0">
<productdefinitionname>Shopping</productdefinitionname>
<internalname>Billede 2</internalname>
<value>
<binary type="binary.base64" size="-1" mimetype="" alttext="" />
</value>
</facility>
<facility sortorder="0">
<productdefinitionname>Shopping</productdefinitionname>
<internalname>Billede 3</internalname>
<value>
<binary type="binary.base64" size="-1" mimetype="" alttext="" />
</value>
</facility>
<facility sortorder="0">
<productdefinitionname>Shopping</productdefinitionname>
<internalname>Billede 4</internalname>
<value>
<binary type="binary.base64" size="-1" mimetype="" alttext="" />
</value>
</facility>
<facility sortorder="0">
<productdefinitionname>Shopping</productdefinitionname>
<internalname>Billede 5</internalname>
<value>
<binary type="binary.base64" size="-1" mimetype="" alttext="" />
</value>
</facility>
<facility sortorder="0">
<productdefinitionname>Shopping</productdefinitionname>
<internalname>Billede 6</internalname>
<value>
<binary type="binary.base64" size="-1" mimetype="" alttext="" />
</value>
</facility>
<facility sortorder="0">
<productdefinitionname>Shopping</productdefinitionname>
<internalname>Billede 7</internalname>
<value>
<binary type="binary.base64" size="-1" mimetype="" alttext="" />
</value>
</facility>
<facility sortorder="0">
<productdefinitionname>Shopping</productdefinitionname>
<internalname>Billede 8</internalname>
<value>
<binary type="binary.base64" size="-1" mimetype="" alttext="" />
</value>
</facility>
<facility sortorder="0">
<productdefinitionname>Shopping</productdefinitionname>
<internalname>Billede 9</internalname>
<value>
<binary type="binary.base64" size="-1" mimetype="" alttext="" />
</value>
</facility>
<facility sortorder="0">
<productdefinitionname>Shopping</productdefinitionname>
<internalname>Billede 10</internalname>
<value>
<binary type="binary.base64" size="-1" mimetype="" alttext="" />
</value>
</facility>
</facility>
<facility iscomposite="true" sortorder="0">
<productdefinitionname>Shopping</productdefinitionname>
<internalname>Kontakt</internalname>
<facility sortorder="0">
<productdefinitionname>Shopping</productdefinitionname>
<internalname>Telefon</internalname>
<value>
<citext type="varchar512" maxlength="512">74751222</citext>
</value>
</facility>
<facility sortorder="0">
<productdefinitionname>Shopping</productdefinitionname>
<internalname>Fax</internalname>
<value>
<citext type="varchar512" maxlength="512" />
</value>
</facility>
<facility iscomposite="true" sortorder="0">
<productdefinitionname>Shopping</productdefinitionname>
<internalname>Website Global</internalname>
<facility sortorder="0">
<productdefinitionname>Shopping</productdefinitionname>
<internalname>NavigateUrl</internalname>
<value>
<citext type="varchar512" />
</value>
</facility>
<facility sortorder="0">
<productdefinitionname>Shopping</productdefinitionname>
<internalname>NavigateText</internalname>
<value>
<citext type="varchar512" maxlength="512" />
</value>
</facility>
</facility>
<facility sortorder="0">
<productdefinitionname>Shopping</productdefinitionname>
<internalname>E-mail</internalname>
<value>
<citext type="varchar512" maxlength="512" />
</value>
</facility>
<facility sortorder="0">
<productdefinitionname>Shopping</productdefinitionname>
<internalname>Telefon2</internalname>
<value>
<citext type="varchar512" maxlength="512" />
</value>
</facility>
</facility>
<facility isenumerated="true" sortorder="0">
<productdefinitionname>Shopping</productdefinitionname>
<internalname>Kommuneoplysninger</internalname>
<value>
<enum type="enum" choicelistculture="da-dk">58</enum>
</value>
</facility>
<facility isenumerated="true" sortorder="0">
<productdefinitionname>Shopping</productdefinitionname>
<internalname>Branche Shopping</internalname>
<value>
<enum type="enum" choicelistculture="da-dk">717</enum>
</value>
</facility>
<facility sortorder="0">
<productdefinitionname>Shopping</productdefinitionname>
<internalname>salg miljømærkede varer</internalname>
<value>
<numeric type="int">0</numeric>
</value>
</facility>
<facility isrequired="true" multiplicity="true" iscomposite="true" sortorder="0">
<productdefinitionname>Shopping</productdefinitionname>
<internalname>Åbningsperioder</internalname>
<facility isrequired="true" iscomposite="true" sortorder="0">
<productdefinitionname>Shopping</productdefinitionname>
<internalname>Åbningsperiode</internalname>
<facility iscomposite="true" sortorder="0">
<productdefinitionname>Shopping</productdefinitionname>
<internalname>Periode</internalname>
<facility sortorder="0">
<productdefinitionname>Shopping</productdefinitionname>
<internalname>Dato fra</internalname>
<value>
<datetime type="datetime" restrictions="">2010-01-01T00:00:00</datetime>
</value>
</facility>
<facility sortorder="0">
<productdefinitionname>Shopping</productdefinitionname>
<internalname>Dato til</internalname>
<value>
<datetime type="datetime" restrictions="">2015-01-01T00:00:00</datetime>
</value>
</facility>
</facility>
<facility isenumerated="true" sortorder="0">
<productdefinitionname>Shopping</productdefinitionname>
<internalname>Ugedage</internalname>
<value>
<enum type="enum" choicelistculture="da-dk">2</enum>
</value>
</facility>
<facility iscomposite="true" sortorder="0">
<productdefinitionname>Shopping</productdefinitionname>
<internalname>Tidsinterval</internalname>
<facility sortorder="0">
<productdefinitionname>Shopping</productdefinitionname>
<internalname>Tid fra</internalname>
<value>
<datetime type="datetime" restrictions="">0001-01-01T00:00:00</datetime>
</value>
</facility>
<facility sortorder="0">
<productdefinitionname>Shopping</productdefinitionname>
<internalname>Tid til</internalname>
<value>
<datetime type="datetime" restrictions="">0001-01-01T00:00:00</datetime>
</value>
</facility>
</facility>
</facility>
</facility>
<facility sortorder="0">
<productdefinitionname>Shopping</productdefinitionname>
<internalname>Skaller</internalname>
<value>
<numeric type="int">0</numeric>
</value>
</facility>
<facility multiplicity="true" iscomposite="true" sortorder="0">
<productdefinitionname>Shopping</productdefinitionname>
<internalname>Eksterne reviews</internalname>
</facility>
<facility iscomposite="true" sortorder="0">
<productdefinitionname>Shopping</productdefinitionname>
<internalname>Andre medier</internalname>
<facility isrequired="true" iscomposite="true" sortorder="0">
<productdefinitionname>Shopping</productdefinitionname>
<internalname>Andet medie</internalname>
<facility sortorder="0">
<productdefinitionname>Shopping</productdefinitionname>
<internalname>Translateable navigateUrl</internalname>
<value>
<text type="varchar512">
<localversion culture="da-dk">www.xxx.dk</localversion>
<localversion culture="en-gb">www.xxx.co.uk</localversion>
<localversion culture="de-de">www.xxx.de</localversion>
</text>
</value>
</facility>
<facility sortorder="0">
<productdefinitionname>Shopping</productdefinitionname>
<internalname>Translateable navigateText</internalname>
<value>
<text type="varchar512" maxlength="512">
<localversion culture="da-dk">xxx</localversion>
<localversion culture="en-gb">xxx</localversion>
<localversion culture="de-de">xxx</localversion>
</text>
</value>
</facility>
</facility>
</facility>
</facilities>
</product>
</content>
</guidedenmark>
</string>
Denne XML har kun et product, men i den endelige er der mange
Den prøver jeg så at læse med min kode i C#.
Jeg gennemløber alle noder i product (i eksemplet 1, men i den endelige er der mange flere). Jeg gemmer værdierne i ArrayList, en for hver node værdi jeg vælger at bruge. F.eks "Identityproductareaname"
MIN KODE: (se kommentarer i koden)
XmlDocument xml = new XmlDocument();
xml.LoadXml(XMLStringDoc); ==XMLStringDoc er en streng med ovenstående XML
//** Find alle standard felter
Denne løber alle node i Product igennem, det virker fint
XmlNodeList xnList = xml.SelectNodes("/string/guidedenmark/content/product");
foreach (XmlNode node in xnList)
{
Identityproductareaname.Add(node["identity"]["productareaname"].InnerText);
Identityproductdefinitionname.Add(node["identity"]["productdefinitionname"].InnerText);
Identityinternalname.Add(node["identity"]["internalname"].InnerText);
Identityuuid.Add(node["identity"]["uuid"].InnerText);
Identitycurrentstatus.Add(node["identity"]["currentstatus"].InnerText);
Identityorganisationcsid.Add(node["identity"]["organisationcsid"].InnerText);
Identityorganisationdisplayname.Add(node["identity"]["organisationdisplayname"].InnerText);
Identityorganisationurl.Add(node["identity"]["organisationurl"].InnerText);
Identityorganisationemail.Add(node["identity"]["organisationemail"].InnerText);
Changelogcreatedbycsid.Add(node["changelog"]["createdbycsid"].InnerText);
Changelogcreateddate.Add(node["changelog"]["createddate"].InnerText);
Changeloglastmodifiedbycsid.Add(node["changelog"]["lastmodifiedbycsid"].InnerText);
Changeloglastmodifieddate.Add(node["changelog"]["lastmodifieddate"].InnerText);
Changelogapprovedbycsid.Add(node["changelog"]["approvedbycsid"].InnerText);
Changelogapproveddate.Add(node["changelog"]["approveddate"].InnerText);
Addressplace.Add(node["address"]["place"].InnerText);
Addressroad.Add(node["address"]["road"].InnerText);
Addresshousenumber.Add(node["address"]["housenumber"].InnerText);
Addressfloor.Add(node["address"]["floor"].InnerText);
Addressside.Add(node["address"]["side"].InnerText);
Addresscity.Add(node["address"]["subcity"].InnerText);
Addresspostalcode.Add(node["address"]["postalcode"].InnerText);
Addresscity.Add(node["address"]["city"].InnerText);
Addresscountry.Add(node["address"]["country"].InnerText);
Addressgeocodex.Add(node["address"]["geocodex"].InnerText);
Addressgeocodey.Add(node["address"]["geocodey"].InnerText);
Addresslatitude.Add(node["address"]["latitude"].InnerText);
Addresslongitude.Add(node["address"]["longitude"].InnerText);
Belongtocitiesbelongtocity.Add(node["belongtocities"]["belongtocity"].InnerText);
Denne her skal løbe alle Facilities node igennem for hver node, men det er her jeg får problemer
foreach (XmlNode nodeFacilities in node)
{
Her vil jeg gerne løbe alle "Facility" felter igennem i Facilities, men ved ikke rigtig hvordan jeg skal (har prøvet meget)
}
}
Jeg har prøvet mange ting, men det er ikke rigtig lykkedes for mig endnu. Jeg får programmet til at løbe igennem noderne og får f.eks 136 noder under Product, men måske kun 4 under email og det dur simpelhen ikke. Jeg har en ide om at jeg for hver product skal hente nogle værdier og under product/facilities skal hente en hel række som høre under den første product node.
Er der nogen der kan hjælpe mig lidt på vej. I sær ved "<localversion culture="da-dk"" hvor jeg skal hente 3 værdier for en node kan jeg ikke rigtig gennemskue hvad der sker.
Hvis nogen kan hjælpe lidt med kodeeksempler vil det være fint. Undgå venligt at give mig links til sider med C#/XML, jeg har næsten prøvet alle de sider jeg kan finde og stadig uden held.
Jeg tror næsten det er en lille ting, men jeg kan BARE ikke se det.