gpt4 book ai didi

xml - 创建新节点

转载 作者:行者123 更新时间:2023-12-03 01:13:03 26 4
gpt4 key购买 nike

$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/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com