В PowerShell я хочу добавить несколько подэлементов в дерево XML.
Я знаю элемент ADD ONE, я знаю, что добавляю один или несколько атрибутов, но я не понимаю, как добавлять ADVERAL элементы.
Один из способов: написать дерево суб-XML как текст
Но я не могу использовать этот метод, потому что элементы не добавляются сразу.
Чтобы добавить один элемент, я делаю это:
[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
]
Вопрос. Как добавить несколько подэлементов по одному?