gpt4 book ai didi

xml - 添加 XML 子元素

转载 作者:数据小太阳 更新时间:2023-10-29 01:38:10 25 4
gpt4 key购买 nike

使用 PowerShell,我想将几​​个子元素添加到 XML 树中。
我知道添加一个元素,我知道添加一个或多个属性,但我不知道如何添加多个元素。

一种方式是write a sub-XML tree as text
但是我不能使用这种方法,因为元素不是一次添加的。

要添加一个元素,我会这样做:

[xml]$xml = get-content $nomfichier
$newEl = $xml.CreateElement('my_element')
[void]$xml.root.AppendChild($newEl)

工作正常。这给了我这个 XML 树:

$xml | fc
class XmlDocument
{
root =
class XmlElement
{
datas =
class XmlElement
{
array1 =
[
value1
value2
value3
]
}
my_element = <-- the element I just added
}
}

现在我想向“my_element”添加一个子元素。我使用类似的方法:

$anotherEl = $xml.CreateElement('my_sub_element')
[void]$xml.root.my_element.AppendChild($anotherEl) <-- error because $xml.root.my_element is a string
[void]$newEl.AppendChild($anotherEl) <-- ok
$again = $xml.CreateElement('another_one')
[void]$newEl.AppendChild($again)

这给出了这个 XML 树(部分显示):

my_element =
class XmlElement
{
my_sub_element =
another_one =
}

那些是属性,不是子元素。
子元素将显示为:

my_element =
[
my_sub_element
another_one
]

问题:如何一次添加多个子元素?

最佳答案

看看下面的例子:

# Document creation
[xml]$xmlDoc = New-Object system.Xml.XmlDocument
$xmlDoc.LoadXml("<?xml version=`"1.0`" encoding=`"utf-8`"?><Racine></Racine>")

# Creation of a node and its text
$xmlElt = $xmlDoc.CreateElement("Machine")
$xmlText = $xmlDoc.CreateTextNode("Mach1")
$xmlElt.AppendChild($xmlText)

# Creation of a sub node
$xmlSubElt = $xmlDoc.CreateElement("Adapters")
$xmlSubText = $xmlDoc.CreateTextNode("Network")
$xmlSubElt.AppendChild($xmlSubText)
$xmlElt.AppendChild($xmlSubElt)

# Creation of an attribute in the principal node
$xmlAtt = $xmlDoc.CreateAttribute("IP")
$xmlAtt.Value = "128.200.1.1"
$xmlElt.Attributes.Append($xmlAtt)

# Add the node to the document
$xmlDoc.LastChild.AppendChild($xmlElt);

# Store to a file
$xmlDoc.Save("c:\Temp\Temp\Fic.xml")

已编辑

备注:Using a relative path in Save will not do what you expect .

关于xml - 添加 XML 子元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10987318/

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