Как добавить XML-подобные теги в Powershell - PullRequest
0 голосов
/ 16 сентября 2011

Мне нужна помощь.Я читаю файл (не XML-файл), в котором содержимое очень похоже на XML в форме:

<xml> <details> 
<details><number>AB053091351</number><totalcontent>2</totalcontent></details>
<details><number>AB053091996</number><totalcontent>2</totalcontent></details>
<details><number>AB053092621</number><totalcontent>2</totalcontent></details>
<details><number>AB053093365</number><totalcontent>0</totalcontent></details>
</details> </xml> 

Я делаю это:

$TRGFile <<-- filename of the content above.


    $result = Get-Content $TRGFile
    $pattern = '<policynumber>'
    $detailResult = ($result |Select-String -Pattern $pattern)

Результат дал мне это:

<details><number>AB053091351</number><totalcontent>2</totalcontent></details>
<details><number>AB053091996</number><totalcontent>2</totalcontent></details>
<details><number>AB053092621</number><totalcontent>2</totalcontent></details>
<details><number>AB053093365</number><totalcontent>0</totalcontent></details>

Мне нужно выполнить цикл в каждой строке, чтобы получить значение в пределах "AB053091351" и "2".Обратите внимание, что, хотя это и есть шаблон XML, но он просто текстовый.

Кто-нибудь знает, как извлечь значение из этих тегов?Какая функция / командлет Powershell для этого подходит .?

Файл находится в формате .txt.Я попытался преобразовать файл в XML, используя это:

 Get-Content E:\file.txt | Export-CliXML E:\file.xml

Для того, чтобы я сделал код так же, как тот, который вы предоставили.но сгенерированный файл XML отличается:

<Obj RefId="5">
  <S><details><number>053091351</number><contentpages>2</contentpages></details></S> 
</Obj>

В котором

<details><number>053091351</number><contentpages>2</contentpages></details>

was referred as string & not as tag.

1 Ответ

0 голосов
/ 16 сентября 2011

Не знаю, что вы хотите делать с этими данными (и все еще не знаете, где есть разница с XML и почему вы не можете обработать файл как XML), но это должно помочь вам начать:

foreach ($elem in $detailResult){write-host (([xml]$elem).details.number+" "+([xml]$elem).details.totalcontent)}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...