Я пытаюсь использовать точечную нотацию, чтобы найти список Полотна элементов в этом XML:Dot нотации не возвращает никаких результатов
<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>
я затем загрузить его в PowerShell:
[xml]$xml = Get-Content MyXMLFile.xml
запрашивая с помощью точка обозначение не работает до тех пор элемент сайта:
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
Однако, когда я пытаюсь получить элементы перемычек, никаких результатов не являются RETU rned:
PS> $xml.Databases.Database.Site.Webs
PS>
Есть ли причина, по которой я не могу найти элементы в Интернете? Это потому, что есть несколько элементов сайта или какая-то другая причина?
Спасибо, первое и последнее предложение. Второе предложение возвращает «Ошибка вызова метода, потому что [System.Object []] не содержит метода с именем« SelectNodes ».» –
О, это так, это коллекция, поэтому метод SelectNodes должен быть в ForEach или вычисленном свойстве – Eris
Также помните, что вам нужно будет сделать то же самое, если вы добавите еще один узел «База данных». – Eris