none
PoSH . Обработка XML файла. RRS feed

  • Вопрос

  • Есть XML файл, который получается после работы какой-то программы, кто и когда ее делал, никто не знает. Так что разобраться с исходной програмкой почти нереально.

    В этом файлике куча всего, но интересуют только строчки с

    <Error>Invalid Purchase Order (019490-00-PO).:Purchase Order already exists.</Error>

    их может быть несколько.

    Сейчас это просто тупо каждый час открывают в XML редакторе, находят такие строки, копируют и посылают емаил, тому кто разбирается с этими ошибками.

    Проблема в том, что таких фаилов может быть 5-10 штук, каждый час.

    Пробовали написать маленький скриптик на PoSh 
    --------
    [xml]$xml = get-content '1.xml'
    $err1 = ( [xml]$xml ).selectnodes('/Receipts/PurchaseOrder/Error')
    Set-Content err1.txt $err1
    ------------

    в err1.txt - Имеем вот это
    ---------
    System.Xml.XPathNodeList
    ------


    Собственных знаний не хватает, чтобы понять, что надо поправить в этом скриптике.
    Прошу помощи.



    3 августа 2009 г. 15:38

Ответы

Все ответы

  • Попробуй так:

    [xml]$xml=get-content 1.xml
    $xml.getelementsbytagname("Error") | %{ $_.get_innertext() | out-file -append err1.txt }
    3 августа 2009 г. 19:52
  • Спасибо.. Практически работает

    Одна маленькая проблемка.  В err1.txt появились нужные строки..но вот все в одну строку. Похоже в исходном файле нет перевода строк.
    Что бы еще добавить. что бы каждая "error" была в другой строке.

    Сорри на ньюбские вопросы, но сам я чисто железячник....

     

    3 августа 2009 г. 20:37
  • Покажите пример файла в котором нужны переносы. А то пока сложно ответить что то кроме "надо добавить переводы строк" :)
    Если речь о том что различные элементы слились, то вот так например можно:
    [xml]$xml=get-content 1.xml
    $xml.getelementsbytagname("Error") | %{ $_.get_innertext() + "`n" | out-file -append err1.txt }


    AKA Xaegr, MCSE: Security, Messaging; MCITP: Server\Enterprise Administrator; Блог: http://xaegr.wordpress.com
    • Предложено в качестве ответа Vasily GusevModerator 4 августа 2009 г. 4:41
    4 августа 2009 г. 4:40
    Модератор
  • Да  , теперь это приняло вполне нормальный вид для чтения.


    Спасибо всем

    4 августа 2009 г. 13:15