python - Getting multiple children's values using minidom -
as can see xml here there multiple <item>
nodes set of children such <summary>
, <status>
, <key>
.
the problem i've encountered in using minidom, it's possible values of firstchild , lastchild, not values in between.
i've created below doesn't work, think close approximation of need doing
import xml.dom.minidom xml = xml.dom.minidom.parse(result) # or xml.dom.minidom.parsestring(xml_string) itemlist = xml.getelementsbytagname('item') item in itemlist [1:]: summarylist = item.getelementsbytagname('summary') statuslist = item.getelementsbytagname('status') keylist = item.getelementsbytagname('key') linetext = (summarylist[0].nodevalue + " " + statuslist[0].nodevalue + " " + keylist[0].nodevalue) p = paragraph(linetext, style) story.append(p)
define get_text()
function joins of text child nodes (see this answer):
def get_text(element): return " ".join(t.nodevalue t in element[0].childnodes if t.nodetype == t.text_node) dom = xml.dom.minidom.parsestring(data) itemlist = dom.getelementsbytagname('item') item in itemlist[1:]: summarylist = item.getelementsbytagname('summary') statuslist = item.getelementsbytagname('status') keylist = item.getelementsbytagname('key') print get_text(summarylist) print get_text(statuslist) print get_text(keylist) print "----"
prints:
unapprove pull request reviewers after major change needs triage stash-4473 ---- allow using left/right arrow move side side diff left/right needs triage stash-4478 ----
hope helps.
Comments
Post a Comment