Имя пользователя:
Пароль:
 

Показать сообщение отдельно

(*.*)


Сообщения: 36574
Благодарности: 6706

Профиль | Сайт | Отправить PM | Цитировать


В итоге пришел именно к парсингу XML средствами PowerShell, задавая не только начало, но и конец диапазона с помощью (.+)

Почему-то в отдельный файл вытягивались данные не с начала диапазона, а с начала строки, на которой он находился. Но это было легко поправить с HTML Tidy (тем более, что все равно это было необходимо по другой причине).

parse-xml.ps1
Код: Выделить весь код
#вытягиваем данные из файла source-file.txt в temp.xml 
#диапазон от '[message' до '<CUSTOM_XML>'
(gc "source-file.txt") -match "\[message(.+)\<\/CUSTOM_XML\>" | out-file -encoding utf8 temp.xml
#очищаем XML
cmd /c "C:\mydir\tidy-xml.cmd"
# примерный код temp.xml показан ниже
$xmlFile = "temp.xml"
[xml]$doc = Get-Content $xmlFile
#выводим нужные параметры на экран
write-host Param1: $doc.CUSTOM_XML.Section.Param1
write-host Param2: $doc.CUSTOM_XML.Section.Param2
write-host Param-pam:$doc.CUSTOM_XML.Section.SubSection.Param-pam
write-host Param-pam-pam:$doc.CUSTOM_XML.Section.SubSection.Param-pam-pam
temp.xml
Код: Выделить весь код
<CUSTOM_XML v="5.0 " xv="109" s="20090815" cv="0001">
  <Section Param1="1336378130756" Param2="ef2922ad-fada-4f59-90d6-dde370dfc695" Param3="0">
    <SubSection Param-pam="Bla" Param-pam-pam="Bla-bla" />
    </SubSection>
  </Section>
</CUSTOM_XML>
tidy-xml.cmd
Код: Выделить весь код
tidy.exe -m -config tidyconf.txt "temp.xml"
tidyconf.txt
Код: Выделить весь код
input-xml: y
indent: auto
markup: yes
wrap: 0

-------
Канал Windows 11, etc | Чат @winsiders


Отправлено: 12:27, 24-04-2012 | #9