Wählen Sie die XML-Knoten aus einem namespace mithilfe von Powershell

Ich habe Folgendes xml:

<?xml version="1.0" encoding="utf-8"?>
<userSettings>
  <setting name="TelephonyServerHost">
    <value>sipserver.domain.local</value>
  </setting>
  <setting name="SipServerFqdn">
    <value>sipserver.domain.local</value>
  </setting>
  <setting name="WebServicesHost">
    <value>websvc.domain.local</value>
  </setting>
  <setting name="KMSettings">
    <value>
      <KMIndexSettings xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
        <AutoIndexEnabled>false</AutoIndexEnabled>
     </KMIndexSettings>
    </value>
  </setting>
</userSettings>

Bin ich in der Lage zum abrufen der Werte, die der Einstellung der Elemente durch xpath-aber ich kann nicht herausfinden, die richtige syntax für das Abfragen der AutoIndexEnabled element mit dem namespace.

Dieser funktioniert wie erwartet für das Lesen der KMSettings oder anderen Knoten, die nicht über ein namespace:

$xml = New-Object -TypeName 'System.XML.XMLDocument'
$xml.Load($xmlFilePath)
$node = $xml.SelectSingleNode("//userSettings/setting[@name='KMSettings']")

Aber ich kann nicht herausfinden, die syntax, wie für die Abfrage der AutoIndexEnabled element.

  • Ich bin kein PowerShell-Benutzer, also nicht in der Lage sein zu helfen, mit der PowerShell bestimmte syntax, aber in Bezug auf die xml, die AutoIndexEnabled element ist innerhalb des xsi-namespace, deshalb sollten Sie PowerShell verwenden, die Möglichkeiten für den Zugriff auf den namespace und anschließend den Knoten in diesem namespace. Nach einer kurzen recherche habe ich gefunden diese Antwort, die aussieht wie passt Ihr Problem
InformationsquelleAutor kr0me | 2016-05-13
Schreibe einen Kommentar