Ich habe folgendes xml:Wählen Sie XML-Knoten aus einem Namespace Powershell mit
<?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>
Ich bin in der Lage, die Werte der Stellelemente abrufen XPath, aber ich kann nicht die korrekte Syntax für die Abfrage des AutoIndexEnabled Element heraus den Namespace verwenden.
Dies funktioniert wie für das Lesen der KMSettings oder anderen Knoten zu erwarten, die keine Namensraum haben:
$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 das AutoIndexEnabled Element abzufragen.
Ich bin kein Benutzer Powershell, so wird mit der Powershell nicht helfen können, zu Spezifische Syntax, aber in Bezug auf das XML-Element befindet sich das AutoIndexEnabled-Element im xsi-Namespace. Daher sollten Sie die Funktionen von PowerShell verwenden, um auf den Namespace und dann auf die Knoten in diesem Namespace zuzugreifen. Bei einer schnellen Suche habe ich [diese Antwort] (http://stackoverflow.com/questions/25566269/select-an-attribute-with-xpath-in-a-xml-with-namespace-using-powershell) gefunden sieht aus wie Ihr Problem –