La sélection d'un XElement à partir d'un XDocument
Je ne voulais vraiment pas à demander de l'aide car je sais que je vais finalement le comprendre, mais j'ai passé trop de temps à, si le document parent de tags ou d'une meilleure structure, il sera un morceau de gâteau. Malheureusement je suis en téléchargeant le document, et je ne peux pas comprendre comment obtenir les données.
J'en ai essayé quelques-uns des requêtes linq et un foreach l'aide de XElement comme un itérateur. De toute façon, voici un exemple de la structure.
<ResultSet xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="urn:yahoo:srch" xsi:schemaLocation="urn:yahoo:srch http://api.search.yahoo.com/SiteExplorerService/V1/InlinkDataResponse.xsd" totalResultsAvailable="247930100" firstResultPosition="99" totalResultsReturned="100">
<Result>
<Title>Adobe - Adobe Reader</Title>
<Url>http://get.adobe.com/fr/reader/</Url>
<ClickUrl>http://get.adobe.com/fr/reader/</ClickUrl>
</Result>
<Result>
<Title>Religious Tolerance</Title>
<Url>http://www.religioustolerance.org/</Url>
<ClickUrl>http://www.religioustolerance.org/</ClickUrl>
</Result>
<Result>
<Title>Applications Internet riches (RIA) | Adobe Flash Player</Title>
<Url>http://www.adobe.com/fr/products/flashplayer/</Url>
<ClickUrl>http://www.adobe.com/fr/products/flashplayer/</ClickUrl>
</Result>
<Result>
<Title>photo management software | Adobe Photoshop Lightroom 3</Title>
<Url>http://www.adobe.com/products/photoshoplightroom/</Url>
<ClickUrl>http://www.adobe.com/products/photoshoplightroom/</ClickUrl>
</Result>
<Result>
<Title>Battle for Wesnoth</Title>
<Url>http://www.wesnoth.org/</Url>
<ClickUrl>http://www.wesnoth.org/</ClickUrl>
</Result>
</ResultSet>
Voici un exemple d'un dernier extrait.
foreach (XElement ele in xDoc.Descendants("ResultSet").Elements("Result"))
{
CollectedUris.Add(ele.Element("Url").Value);
}
OriginalL'auteur Ash | 2010-08-11
Vous devez vous connecter pour publier un commentaire.
Vous aurez besoin d'ajouter un
XNamespace
:Modifier:
Une LINQ solution pour les points de bonus:
OriginalL'auteur Metro Smurf
Je suis en supposant que vous voulez tous
<Url>
éléments dans le document. Si c'est le cas, alors la boucle est presque là. Vous voulez faire de la suivante.Root
vous obtient une référence à l'élément racine, et le suivantDescendants
instruction renvoie uniquement les<Result>
nœuds. La dernièreDescendants
déclaration réduit encore la<Result>
nœud agent recenseur afin de retourner uniquement<Url>
éléments.voir ma solution. Steve est correct si il n'est pas un espace de noms, mais votre exemple, nécessite un espace de noms manager.
OriginalL'auteur Steve Guidi