J'essaie d'utiliser la notation des points pour trouver la liste des éléments Webs dans ce XML:notation Dot Aucun résultat
<Databases>
<Database SiteCount="2" Name="MyDB" DataSource="BLAHDEV">
<Site Id="72affdff-b0a9-404e-a000-08cfc1c2828a" OwnerLogin="Blah\Blah" InSiteMap="True">
<Webs Count="1">
<Web Id="5fb7df63-0ab3-4cb2-88de-1a94ceda0fbf" Url="/people/me/blah" LanguageId="1033" TemplateName="SPSPERS#0" TemplateId="21" />
</Webs>
</Site>
<Site Id="9ae7dd88-cdd9-4d22-b6af-2185ddb22994" OwnerLogin="Blah\Blah" InSiteMap="True">
<Webs Count="1">
<Web Id="45d2d002-4e7d-4f22-9cd2-c93fdd49daab" Url="/people/me/blah2" LanguageId="1033" TemplateName="SPSPERS#0" TemplateId="21" />
</Webs>
</Site>
</Database>
</Databases>
je puis le charger dans Powershell:
[xml]$xml = Get-Content MyXMLFile.xml
Interrogation en utilisant la notation de points fonctionne jusqu'à l'élément du site:
PS> $xml
Databases
---------
Databases
PS> $xml.Databases
Database
--------
Database
PS> $xml.Databases.Database
SiteCount Name DataSource Site
--------- ---- ---------- ----
2 MyDB BLAHDEV {Site, Site}
PS> $xml.Databases.Database.Site
Id OwnerLogin InSiteMap Webs
-- ---------- --------- ----
72affdff-b0a9-404e-a000-08... Blah\Blah True Webs
9ae7dd88-cdd9-4d22-b6af-21... Blah\Blah True Webs
Cependant lorsque je tente d'obtenir les éléments Webs, aucun résultat ne retou rned:
PS> $xml.Databases.Database.Site.Webs
PS>
Y at-il une raison pour laquelle je ne trouve pas les éléments Webs? Est-ce parce qu'il y a plusieurs éléments du site ou pour une autre raison?
Merci, le premier et le dernier travail de suggestion. La seconde suggestion renvoie "L'appel de méthode a échoué car [System.Object []] ne contient pas de méthode nommée" SelectNodes "." –
Oh, c'est vrai, c'est une collection donc la méthode SelectNodes devrait être dans un ForEach, ou une propriété calculée – Eris
Rappelez-vous aussi que vous devrez faire la même chose si vous ajoutez un autre nœud 'Database'. – Eris