Показать полную графическую версию : Заполнить данные XML файла
smotritel89
21-03-2014, 12:26
Всем привет!
Есть список в файле TXT
11111
22222
33333
44444
55555
Есть файл xml, такой структуры, в нем строки:
<listitem>
<variable name="Id">1</variable>
<variable name="mask">XXXXX</variable>
</listitem>
<listitem>
<variable name="Id">2</variable>
<variable name="mask">XXXXX</variable>
</listitem>
Как можно данные из файла TXT, занести на место XXXXX в XML, естественно по порядку?
Есть файл xml, такой структуры»
Не бывает таких xml-файлов, упакуйте образец реального xml-файла в архив и приложите.
Как можно данные из файла TXT, занести на место XXXXX в XML, естественно по порядку? »
Чем определяется порядок? Как поступать в случае разного количества строк в txt и числа узлов «listitem» в xml-файле?
smotritel89
21-03-2014, 13:42
да это на самом деле конфигурационный файл, который нужно заполнить списком сайтов.
я от туда просто выделил узлы в отдельный файл и в которые нужно заполнить данные, в тег Url.
<listitem>
<variable name="Id">47</variable>
<variable name="Enabled">1</variable>
<variable name="Description"></variable>
<variable name="Name">Social</variable>
<variable name="Url">facebook.com</variable>
<variable name="Type">2</variable>
</listitem>
<listitem>
<variable name="Id">48</variable>
<variable name="Enabled">1</variable>
<variable name="Description"></variable>
<variable name="Name">Social</variable>
<variable name="Url">twitter.com</variable>
<variable name="Type">2</variable>
</listitem>
будем считать что строк в TXT, и узлов в файле конфига одинаковое.
ну например есть тег Id, он идет по возрастанию. например 1 строку из TXT занести в тег Url, первого узла в файле конфига. и так по порядку.
да это на самом деле конфигурационный файл, который нужно заполнить списком сайтов.
я от туда просто выделил узлы в отдельный файл и в которые нужно заполнить данные, в тег Url. »
smotritel89, не надо выделять. Повторяю: упакуйте xml-файл в архив и выложите его.
smotritel89
21-03-2014, 13:56
Вот
PowerShell:
$file = "C:\winroute.cfg"
$xml = [xml](Get-Content $file)
$url = Get-Content url.txt
$ug= $xml.config.list[14]
for($i=0;$i -lt $url.count;$i++) {
$ug.listitem[$i].variable[4]."#text" = $urls[$i]
}
$xml.Save($file)
С каким именно из «list» работаем?
Kazun, «name="UrlGroups"», это точно? Может, стоит тогда ориентироваться именно по имени?!
Iska, пожалуй Вы правы - лучше по имени. А с UrlGroups - не уверен
smotritel89 , если потребуется по имени
$ug= $xml.config.list[14] заменить на
$ug.SelectNodes("//list[@name='UrlGroups']")
А с UrlGroups - не уверен »
Ну, коль автор счёл полезным — будем считать, что Вы верно выбрали узел.
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.