wsman kimenet ElementTree-vel való feldolgozása

0 votes
asked Apr 9, 2013 in IRF tantárgy by anonymous  

Nem tudom működésre bírni a dolgot. Importáltam az ElementTree-t.

import xml.etree.ElementTree as ET

Elmentem egy változóba a wsman kimenetét.

output = subprocess.check_output(["wsman", ........])

Majd megpróbálok egy fát csinálni belőle.

tree = ET.parse(output)

Ez pedig nem parsol semmit, csak visszaköpi a kimenetre az xml tag-eket, mindennemű rendezettség nélkül, pedig még csak ki se kéne írnia semmit.

Próbálatam, hogy a subprocess.checkoutput végén megadom, hogy universalnewlines=True, hogy string-ként kapjam meg a parancs kimenetét, és akkor a fa gyökérelemét a

root = ET.fromstring(output)

paranccsal csinálom meg. Így pedig hibaüzenetet kapok, hogy valami szemetet talált a kapott string-ben.

Tudna valaki tippet adni, hogy hogyan is kéne ezt csinálni? Esetleg másik parser-t kéne használnom?

1 Answer

0 votes
answered Apr 9, 2013 by anonymous  
 
Best answer

Általában több xml dokumentumot ad vissza a wsman, tehát egy xml doksiba nem lehet belesúvasztani. Nézd meg miket tudnak a -o és -O kapcsolók (wsman --help-all). Amúgy minidom is tud stringből parseolni a parseString-gel.

Remélem segítettem!

commented Apr 10, 2013 by anonymous  
Most úgy elvileg sikerült, hogy létrehoztam egy ideiglenes file-t, abba beleírtam a kapott választ -O kapcsolóval. Ebből viszont, amit ki tud szedni a parser, azt csak az első soap envelope, és még az ebben való keresgélés sem működik. Egy kicsit konkrétabb megoldást kérhetek?
commented Apr 10, 2013 by anonymous  
edited Apr 10, 2013
Azt hiszem megvan.
commented Apr 13, 2013 by anonymous  
Esetleg leírnád, hogy, hogyan oldottad meg?
...