$club = $xml.CreateElement('xi:include')
$club.SetAttribute('href','barracas')
$lookupNode.AppendChild($club) >$null
$xml.Save($config_filename)
在上面的PowerShell片段
$lookupNode
中,是我要添加新创建的节点$club
的节点。我希望在下面添加行。
<xi:include href="barracas" />
我实际上得到的是下面的一行。
<include href="barracas" xmlns="" />
问题是:
xi:include
,但它以include
开头。 xmlns=""
,我不需要。 最佳答案
XML元素中以冒号分隔的前缀表示namespace。
<foo:bar baz='something'>else</foo:bar>
^ ^ ^ ^ ^
| | | | `- node value/text
| | | `- attribute value/text
| | `- attribute name
| `- node name
`- namespace name
您需要一个namespace manager来处理这些:
[Xml.XmlNamespaceManager]$nsm = $xml.NameTable
$nsm.AddNamespace('ns', $xml.DocumentElement.NamespaceURI)
$nsm.AddNamespace('xi', 'http://...')
$club = $xml.CreateElement('xi:include', $ns.LookupNamespace('xi'))
$club.SetAttribute('href', 'barracas')
$xml.DocumentElement.AppendChild($club) >$null
另请参阅this related question。
关于xml - 创建新节点<xi:include>,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35652915/