$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=""
,我不需要。答案 0 :(得分:3)
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