Помещение узла в определенное место XML-файла.
День добрый.
Сам программистом не являюсь, просто пишу небольшие скрипты для облегчения своей рутины, поэтому терминологией не владею, за что прошу меня понять и простить.
Существует задача:
Имеется вот такой XML
Код:
<?xml version="1.0"?>
<ConfigurationManifest>
<General>
<Name>FileName</Name>
<PreviewImage>image.jpg</PreviewImage>
<LastClientIdentifier>Lastclient</LastClientIdentifier>
<Created date="10/20/2020 22:20:23" />
<LastModified date="05/08/2021 22:31:12" />
</General>
</ConfigurationManifest>
Необходимо между <Name> и <PreviewImage> поместить узел <Description>Bla-Bla-Bla</Description>. Все что я не пробовал, помещает только в конец, после <LastModified>, что недопустимо т.к. программа, которой нужен этот xml, понимает только такую структуру. Реально ли это вообще в Powershell, или не стоит даже пытаться?
|
Цитата:
Цитата Йожык
Реально ли это вообще в Powershell »
|
Конечно. Например, так:
Код:
$oXMLDocument = [xml](Get-Content -Path 'C:\Мои проекты\0342\In.txt')
$oChildNode = $oXMLDocument.CreateElement("Description")
$oChildNode.AppendChild($oXMLDocument.CreateTextNode('bla-bla-bla')) | Out-Null
$oRefNode = $oXMLDocument.DocumentElement.SelectSingleNode('/ConfigurationManifest/General/PreviewImage')
$oRefNode.ParentNode.InsertBefore($oChildNode, $oRefNode) | Out-Null
$oXMLDocument.Save('C:\Мои проекты\0342\Out.txt')
|
Спасибо. Все заработало. А может подскажете, что можно почитать для взаимодействия XML и PS начиная с азов? А то, ну совсем ничего не находится... :dont-know
|
Давайте так — как у Вас по самому XML, и как по Powershell?
|
PS - elementary
XML - beginner
|
Тогда я бы не советовал начинать с взаимодействия XML и именно Powershell. Попробуйте с XML что-нибудь попроще, из того, что знаете — WSH/VBA/VB.Net/Delphi/C++/C# — если знаете. А потом уже переходить к XML под Powershell, держа в голове уже освоенные приёмы работы.
А так — да:
Цитата:
Цитата Йожык
А то, ну совсем ничего не находится... »
|
powershell xml - Поиск в Google и — выбирать, читать. На русском ничего вменяемого и полноценного мне лично неизвестно.
|
Время: 09:48.
© OSzone.net 2001-