Ваши данные XML используют пространства имен, поэтому вам нужно позаботиться об этом.Узел <core>
определяет пространство имен по умолчанию (xmlns="urn:activemq:core"
), которое применяется ко всем его дочерним узлам.Создайте менеджер пространства имен и добавьте в него это пространство имен:
$nm = New-Object Xml.XmlNamespaceManager $xml.NameTable
$nm.AddNamespace('foo', 'urn:activemq:core')
Выберите узел, к которому вы хотите добавить свой новый узел:
$cn = $xml.SelectSingleNode('//foo:connectors', $nm)
При создании нового узла укажите его по умолчаниюпространство имен, затем установите атрибуты и значение узла:
$node = $xml.CreateElement('connector', $cn.NamespaceURI)
$node.SetAttribute('name', 'blaat')
$node.InnerText = 'tcp://xxxxx2:61616'
Теперь вы можете добавить новый узел к предполагаемому родителю, не получая ложный атрибут xmlns
:
[void]$cn.AppendChild($node)