簡體   English   中英

在powershell中轉義冒號

[英]Escaping a colon in powershell

我在powershell中有以下一段代碼試圖讀回一段xml。

$path = "C:\path\8429006775491.xml"
$xml = [xml](Get-Content $path)
$xml.ern:NewReleaseMessage

問題是冒號 (:),我試圖用 ' 轉義它,但它似乎不起作用。 還嘗試將其放入 {} 如果我編輯 xml 文件本身中的冒號並相應地更改代碼,它可以正常讀取,但不幸的是,這不是一個選項。 任何幫助真的很感激。

為了讓 .NET 理解命名空間前綴,你需要一個命名空間管理器對象:

$path = "C:\path\8429006775491.xml"
$xml = [xml](Get-Content $path)

$XmlNSManager = New-Object System.Xml.XmlNamespaceManager -ArgumentList $xml.NameTable
$XmlNSManager.AddNamespace('ern','http://ddex.net/xml/ern/341')
$XmlNSManager.AddNamespace('xsi','http://www.w3.org/2001/XMLSchema-instance')

# Now you can use SelectNodes() with your namespace manager:

# If NewReleaseMessage is the root node
$xml.SelectNodes('/ern:NewReleaseMessage',$XmlNSManager)

# If NewReleaseMessage is a descendant of the root node
$xml.SelectNodes('//ern:NewReleaseMessage',$XmlNSManager)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM