У меня есть 290 xml-файлов резервной копии групповой политики, которые мне нужно перечислить в отдельных папках.
С каждым xml-файлом резервной копии групповой политики мне нужно запросить параметры политики.
Любой, ктоЯ посмотрел на файл резервной копии XML групповой политики, прежде чем узнал, что они заполнены объявлениями пространства имен.
Я хочу знать, используя Linq to XML, когда я запрашиваю каждый файл XML, как я могу это сделать?динамически запрашивать у XML пространство имен, а затем добавить пространство имен в запрос Linq для дочерних узлов / значений?
Вот несколько примеров структуры xml.
<User>
<ExtensionData>
<Extension xmlns:q1="http://www.microsoft.com/GroupPolicy/Settings/Scripts" xsi:type="q1:Scripts">
<q1:Script>
<ExtensionData>
<Extension xmlns:q1="http://www.microsoft.com/GroupPolicy/Settings/IE" xsi:type="q1:InternetExplorerSettings">
<q1:PreferenceMode>true</q1:PreferenceMode>
<ExtensionData>
<Extension xmlns:q2="http://www.microsoft.com/GroupPolicy/Settings/Registry" xsi:type="q2:RegistrySettings">
<q2:Policy>
<q2:Name>Disable changing accessibility settings</q2:Name>
<q2:State>Enabled</q2:State>
<ExtensionData>
<Extension xmlns:q1="http://www.microsoft.com/GroupPolicy/Settings/DriveMaps" xsi:type="q1:DriveMapSettings">
<q1:DriveMapSettings clsid="{8FDDCC1A-0C3C-43cd-A6B4-71A6DF20DA8C}">
Мой исходный код выглядитвот так:
Dim NS As XNamespace = "http://www.microsoft.com/GroupPolicy/Settings"
NodeValue = XDoc.Descendants(NS + NodeName).First().Value
Как вы видите, я столкнусь буквально с десятками различных пространств имен, на данном этапе я даже не знаю, что они все из себя представляют.
Моя конечная задача - просмотреть 290 каталогов, каждый из которых содержит один файл резервной копии XML групповой политики.Затем мне нужно прочитать имя политики из каждого из параметров, содержащихся в файле резервной копии.
Поскольку я не знаю, какие параметры политики будет содержать каждый файл xml, я не знаю, какие пространства именМне нужно использовать при попытке прочитать значения XML.Каждый xml-файл может даже содержать несколько пространств имен.
Как динамически читать пространство имен в Linq, чтобы я мог читать значения?
Спасибо