Extrait des nœuds de XmlNodeList, avec espace de noms, et où même l'enfant apparaît à plusieurs niveaux
Je suis en train d'extraire ces sous-nœuds, mais j'avais fait juste mal à la tête pour l'instant...
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Body>
<supplyCrew xmlns="http://site.ddf.com">
<login>
<login>XXXX</login>
<password>XXXX</password>
</login>
<flightInformation>
<flights>
<item>
<arrivalDateTime>2010-11-08T22:48:00.000Z</arrivalDateTime>
<arrivingCity>ORD</arrivingCity>
<crewMembers>
<item>
<employeeId>020040</employeeId>
<isDepositor>Y</isDepositor>
<isTransmitter>N</isTransmitter>
</item>
<item>
<employeeId>09000</employeeId>
<isDepositor>N</isDepositor>
<isTransmitter>Y</isTransmitter>
</item>
</crewMembers>
</item>
<item>
<arrivalDateTime>2010-11-08T20:29:00.000Z</arrivalDateTime>
<arrivingCity>JFK</arrivingCity>
<crewMembers>
<item>
<employeeId>0538</employeeId>
<isDepositor>Y</isDepositor>
<isTransmitter>N</isTransmitter>
</item>
<item>
<employeeId>097790</employeeId>
<isDepositor>N</isDepositor>
<isTransmitter>Y</isTransmitter>
</item>
avec le code je peux les obtenir, mais je ne sais pas comment les sélectionner en fonction de leur nom de la balise à insérer dans une base de données.
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load("C:/Crew_Request_Sample.xml");
XmlNodeList elemList = xmlDoc.GetElementsByTagName("item");
foreach (XmlNode node in elemList)
{
Debug.WriteLine(node.InnerText);
}
J'ai besoin de quelques conseils, s'il vous plaît.
OriginalL'auteur Devester | 2012-10-04
Vous devez vous connecter pour publier un commentaire.
Le problème avec l'aide de
GetElementsByTagName("item")
ici est qu'il existe 2 niveaux deitem
nœud - comme un enfant deflights
et un autre élément comme un enfant decrewMembers
.Modifier Maintenant que le xml complet est collé, il est clair qu'il existe aussi un espace de noms. Pour gérer les espaces de noms, de faire usage d'un gestionnaire de noms de définir des alias pour les espaces de noms, que vous pouvez ensuite utiliser dans les requêtes xpath:
Non, vous n'aurez pas besoin d'ajouter de racine éléments (depuis le
//
recherche passé nœuds racine), mais cela peut signifier que votre arborescence xml n'est pas dans l'espace de noms global, ce qui signifie que vous aurez besoin d'un XmlNameSpaceManager.Merci pour la mise à jour XML, vous aurez besoin d'un namespacemanager. J'ai mis à jour.
merci beaucoup.....il travaille énormément...
Comment je pourrais obtenir des <point> <arrivalDateTime>, et puis les membres de l'équipage> <item> ou chacun des membres de l'équipage> <item> que belgons <item><arrivalDateTime>?
OriginalL'auteur StuartLC
Vous pouvez le faire en utilisant LINQ2XML..
Vous pouvez ensuite accéder à yourList utilisant la boucle for-each
modifier votre question et de nous montrer le plein format de
XML
..soapenv
est unnamespace
.Il convient d'ajouter le code.la structure XML de sorte que je peux aider u wid queest-ce ur de la structure xml
Envelope->Body->item
maintenant le code complet....désolé
édité le sna
OriginalL'auteur Anirudha
Je pense que vous allez le faire plus rapidement et facilement en utilisant cette technique
Linq to XML
Il y a beaucoup d'exemples dans le site, il 'll être facile de trouver ce que vous voulez.
Espérons que cela aide.
OriginalL'auteur Vinicius