добавьте много уровень xml powershell

Я пытаюсь создать некоторый много уровень xml в powershell. Я начал с кода от

добавляющий подэлементы xml

Я испытываю затруднения при получении моей головы вокруг, как создать второй подуровень. Пример xml, который я хочу создать, ниже.

Заранее спасибо,

Goldstien

<?xml version="1.0" ?>





My service


    
    My service ref




1
nl ja de
I' m не уверенный, под чем вы подразумеваете, "создают второй подуровень". Вы хотите изменить структуру? Для этого you' d должны изменить ДАТУ. Или вы просто хотите приложить детский узел к некоторому узлу? Это было бы сделано как это (в целом): выберите узел, создайте новый элемент, приложите новый элемент к отобранному узлу.
добавлено автор Ansgar Wiechers, источник
Таким образом в Метке исходный признак и дети. Я испытываю затруднения при адаптации кода от предыдущей почты, чтобы произвести тот код xml выше. I' m знакомый с powershell, но в новинку для кодирования xml.
добавлено автор Goldstien, источник

1 ответы

Если у вас есть структура как это:


  
    My service
    
  

and want to add a node so that it looks like this:


  
    My service
    
    
      
      My service ref
    
  

вы могли пойти об этом как это:

# load xml file
[xml]$doc = Get-Content "C:\service.xml"

# create node 
$comp = $doc.CreateNode('element', 'Composition', '')

# create node 
$sref = $doc.CreateNode('element', 'ServiceRef', '')
$desc = $doc.CreateTextNode('My service ref')
$sref.AppendChild($desc)

# create node  and append child nodes  and 
$src = $doc.CreateNode('element', 'Source', '')
$src.AppendChild($comp)
$src.AppendChild($sref)

# append node  to node 
$svc = $doc.SelectSingleNode('//Service')
$svc.AppendChild($src)

# save xml file
$doc.Save("C:\service.xml")

Edit: You can loop over several nodes with something like this (simplified):

$doc.SelectNodes('//Service') | % {
  $comp = $doc.CreateNode('element', 'Composition', '')
  $sref = $doc.CreateNode('element', 'ServiceRef', '')

  $src = $doc.CreateNode('element', 'Source', '')
  $src.AppendChild($comp)
  $src.AppendChild($sref)

  $_.AppendChild($src)
}
2
добавлено
Спасибо - придвижение поближе. Таким образом, я вручную создал C:\service.xml и управлял новым кодом, и это работает. У меня есть несколько услуг во множестве (т.е. $services = ("service1", "service2"), и задавался вопросом, как образовать петли через них.
добавлено автор Goldstien, источник
DotNetRuChat
DotNetRuChat
2 992 участник(ов)

Чат русскоязычного .NET сообщества http://dotnet.ru/ Вам могут быть интересны: @dotnetchat, @cilchat, @fsharp_chat, @pro_net, @xamarin_russia, @microsoftstackjobs, @uwp_ru Флуд в @dotnettalks

Microsoft Stack Jobs
Microsoft Stack Jobs
1 788 участник(ов)

Work & freelance only Microsoft Stack. Feed https://t.me/Microsoftstackjobsfeed Чат про F#: @Fsharp_chat Чат про C#: @CSharpChat Чат про Xamarin: @xamarin_russia Чат общения:@dotnettalks

pro.net
pro.net
710 участник(ов)

Обсуждение .NET Framework и всего, что с ним связано. Правила: не флудить не по теме, уважать ваших коллег и никакой рекламы (объявления о вакансиях можно согласовать с @AlexFails). Флудилка: @dotnettalks Участник @proDOT

Microsoft Developer Community Chat
Microsoft Developer Community Chat
584 участник(ов)

Чат для разработчиков и системных администраторов Microsoft Developer Community. __________ Новостной канал: @msdevru __________ Баним за: оскорбления, мат, рекламу, флуд, флейм, спам, NSFW контент, а также большое количество оффтоп тем. @banofbot

.NET Talks: Force Push Masters
.NET Talks: Force Push Masters
490 участник(ов)

Свободный чат .NET разработчиков. Правила: t.me/dotnettalks/56823 Вам могут быть интересны: @dotnetruchat, @dotnetchat, @cilchat, @fsharp_chat, @pro_net, @dotnetgroup, @xamarin_russia, @microsoftstackjobs, @uwp_ru http://combot.org/chat/-1001128250813

PowerShellRus - о Powershell (и не только) на русском
PowerShellRus - о Powershell (и не только) на русском
418 участник(ов)

О Powershell на русском

.NET Chat Убежище
.NET Chat Убежище
246 участник(ов)

Чат .NET разработчиков под эгидой MSK/SPB .NET Community Group Вам могут быть интересны: @fsharp_chat, @dotnetruchat, @cilchat, @xamarin_russia, @microsoftstackjobs, @dotnetgroup Флуд в @dotnettalks

PowerShell Pro
PowerShell Pro
75 участник(ов)

Чат, посвящённый языку PowerShell Правила чата: нет оффтопу, спаму, оскорблениям. Будьте вежливы к коллегам. Приятного общения! Книги можно найти по тегу #books

.NET CIL Chat
.NET CIL Chat
54 участник(ов)

.NET CIL (aka IL aka MSIL)