L'analyse de xml avec XDocument et XPath
<REETA xmlns="http://pria.org">
<AFFIDAVIT>
<COUNTY_NAME>BOBBIES COUNTY</COUNTY_NAME>
<DOC_TYPE>DEED</DOC_TYPE>
<DOC_DATE>2010-02-19T05:14:58</DOC_DATE>
<GROSS_SELL_PRICE>200000.00</GROSS_SELL_PRICE>
<TAXABLE_SELL_PRICE>200000.00</TAXABLE_SELL_PRICE>
<EXCISE_TAX_STATE>2560.00</EXCISE_TAX_STATE>
<EXCISE_TAX_LOCAL>500.00</EXCISE_TAX_LOCAL>
<DELQ_INT_STATE>0.00</DELQ_INT_STATE>
<DELQ_INT_LOCAL>0.00</DELQ_INT_LOCAL>
<DELQ_PENALTY>0.00</DELQ_PENALTY>
<SUB_TOTAL>3060</SUB_TOTAL>
<STATE_TECH_FEE>5.00</STATE_TECH_FEE>
<PROCESSING_FEE>0.00</PROCESSING_FEE>
<TOTAL_DUE>3065</TOTAL_DUE>
- <INDIVIDUAL type="Buyer">
<NAME>JANE DOE</NAME>
</INDIVIDUAL>
- <INDIVIDUAL type="Seller">
<NAME>JON DOE</NAME>
</INDIVIDUAL>
- <PARCEL>
<NUMBER>3141614</NUMBER>
</PARCEL>
</AFFIDAVIT>
</REETA>
var affidavits = xDocument.Descendants("AFFIDAVIT");
var affidavitsTest = xDocument.XPathEvaluate("/reeta/AFFIDAVIT/COUNTY_NAME");
Ci-dessus est xml, qui je suis consommer à partir d'une source tierce. Pour une raison que je ne peut pas analyser le fichier xml avec la méthode que je décris ci-dessus. Aucune information serait très utile merci beaucoup
J'ai essayé chrissr suggestion et Igor zevaka suggestions. Igor et chrissr souligné j'ai besoin d'inclure l'espace de noms. Après, y compris l'espace de noms, je n'arrive pas à parser le xml. Ce qui se passe est xdocument.descenants("{pria.org}AFFIDAVIT"); retourne l'ensemble de xml, et la xpathevaluate retourne énumération pas donné
Il a travaillé, je vous remercie. J'ai tapé l'url dans la ns incorrect. merci à la fois chrissr et igor
Il a travaillé, je vous remercie. J'ai tapé l'url dans la ns incorrect. merci à la fois chrissr et igor
OriginalL'auteur | 2010-02-22
Vous devez vous connecter pour publier un commentaire.
Vous n'avez pas à spécifier l'espace de noms. Essayez:
En fait la suggestion sur MSDN est d'utiliser la chaîne de concaténation l'opérateur est substituée à cet effet: "Pour le C#, l'approche recommandée pour la création d'un XName dans un espace de noms est de déclarer la XNamespace objet, puis utilisez la surcharge de l'opérateur d'addition." Trouvé dans la section "Création d'un XName dans un espace de Noms" de la section: msdn.microsoft.com/en-us/library/system.xml.linq.xname
OriginalL'auteur chrissr
Ce bit
ne fonctionne pas car la
AFFIDAVIT
est dans lehttp://pria.org
espace de noms. Cela devrait fonctionner (ne l'ai pas testé):Alternative à ce, sans avoir à coder en dur l'espace de noms dans le code est à utiliser l'espace de noms de la racine le nœud de la sorte:
L'expression xpath, l'un ne fonctionne pas à cause de la casse. Pour commencer, il convient de
Comme dans
REETA
, pasreeta
. Il aura également des problèmes d'espace de noms une fois le cas de la sensibilité est réglée. Je ne suis pas trop sûr de la façon de spécifier les espaces de noms dans XPath.OriginalL'auteur Igor Zevaka