Ты совсем близко, всего несколько изменений:
#setting variables
$path = "H:\PSTesting\Logs\ExerciseXml.xml"
[xml]$xml = Get-Content $path
#Creating element
$child = $xml.CreateElement("Testing")
#setting attributes
$child.SetAttribute('hey','something')
#adding attributes to the location
$xml.configuration.'system.web'.AppendChild($child)
#save file
$xml.Save($path)
Кстати, вы можете удалить -
из вашего примера, поскольку они вводят в заблуждение (xml
на самом деле их не содержит, и они видны только при открытии из таких программ, как IE)
Редактировать : как указано Рохин Сидхарт , в качестве рекомендации рекомендуется указывать тип (хотя PowerShell обнаружит его автоматически, если формат файла правильный) .
Edit2 : чтобы уточнить, что было не так:
$child = $xml.CreateElement("Test")
Это создаст элемент с именем Test
, в то время как вы хотите Testing
на основе вашего желаемого результата.
$child.SetAttribute('Testing','hey = "something"')
Это создаст атрибут Testing
со значением hey = "something"
$xml.'system.web'.AppendChild($child)
Это не будет работать, так как правильный путь - $xml.configuration.'system.web'
вместо $xml.'system.web'
.