Python xml.dom.minidom.parseString() Examples
The following are 30
code examples of xml.dom.minidom.parseString().
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example.
You may also want to check out all available functions/classes of the module
xml.dom.minidom
, or try the search function
.
Example #1
Source File: outputhandler.py From benchexec with Apache License 2.0 | 6 votes |
def _write_pretty_result_xml_to_file(self, xml, filename): """Writes a nicely formatted XML file with DOCTYPE, and compressed if necessary.""" if self.compress_results: actual_filename = filename + ".bz2" open_func = bz2.BZ2File else: # write content to temp file first to prevent losing data # in existing file if writing fails actual_filename = filename + ".tmp" open_func = open with io.TextIOWrapper( open_func(actual_filename, "wb"), encoding="utf-8" ) as file: rough_string = ElementTree.tostring(xml, encoding="unicode") reparsed = minidom.parseString(rough_string) doctype = minidom.DOMImplementation().createDocumentType( "result", RESULT_XML_PUBLIC_ID, RESULT_XML_SYSTEM_ID ) reparsed.insertBefore(doctype, reparsed.documentElement) reparsed.writexml( file, indent="", addindent=" ", newl="\n", encoding="utf-8" ) if self.compress_results: # try to delete uncompressed file (would have been overwritten in no-compress-mode) try: os.remove(filename) except OSError: pass self.all_created_files.discard(filename) self.all_created_files.add(actual_filename) else: os.rename(actual_filename, filename) self.all_created_files.add(filename) return filename
Example #2
Source File: test_parsing.py From kobo-predict with BSD 2-Clause "Simplified" License | 6 votes |
def test_xpath_from_xml_node(self): xml_str = '<?xml version=\'1.0\' ?><test_item_name_matches_repeat ' \ 'id="repeat_child_name_matches_repeat">' \ '<formhub><uuid>c911d71ce1ac48478e5f8bac99addc4e</uuid>' \ '</formhub><gps><gps>-1.2625149 36.7924478 0.0 30.0</gps>' \ '<info>Yo</info></gps><gps>' \ '<gps>-1.2625072 36.7924328 0.0 30.0</gps>' \ '<info>What</info></gps></test_item_name_matches_repeat>' clean_xml_str = xml_str.strip() clean_xml_str = re.sub(ur">\s+<", u"><", clean_xml_str) root_node = minidom.parseString(clean_xml_str).documentElement # get the first top-level gps element gps_node = root_node.firstChild.nextSibling self.assertEqual(gps_node.nodeName, u'gps') # get the info element within the gps element info_node = gps_node.getElementsByTagName(u'info')[0] # create an xpath that should look like gps/info xpath = xpath_from_xml_node(info_node) self.assertEqual(xpath, u'gps/info')
Example #3
Source File: test_minidom.py From ironpython2 with Apache License 2.0 | 6 votes |
def testNormalizeDeleteAndCombine(self): doc = parseString("<doc/>") root = doc.documentElement root.appendChild(doc.createTextNode("")) root.appendChild(doc.createTextNode("second")) root.appendChild(doc.createTextNode("")) root.appendChild(doc.createTextNode("fourth")) root.appendChild(doc.createTextNode("")) self.confirm(len(root.childNodes) == 5 and root.childNodes.length == 5, "testNormalizeDeleteAndCombine -- preparation") doc.normalize() self.confirm(len(root.childNodes) == 1 and root.childNodes.length == 1 and root.firstChild is root.lastChild and root.firstChild.data == "secondfourth" and root.firstChild.previousSibling is None and root.firstChild.nextSibling is None , "testNormalizeDeleteAndCombine -- result") doc.unlink()
Example #4
Source File: viewer_tools.py From kobo-predict with BSD 2-Clause "Simplified" License | 6 votes |
def parse_xform_instance(xml_str): """ 'xml_str' is a str object holding the XML of an XForm instance. Return a python object representation of this XML file. """ xml_obj = minidom.parseString(xml_str) root_node = xml_obj.documentElement # go through the xml object creating a corresponding python object # NOTE: THIS WILL DESTROY ANY DATA COLLECTED WITH REPEATABLE NODES # THIS IS OKAY FOR OUR USE CASE, BUT OTHER USERS SHOULD BEWARE. survey_data = dict(_path_value_pairs(root_node)) assert len(list(_all_attributes(root_node))) == 1, \ _(u"There should be exactly one attribute in this document.") survey_data.update({ common_tags.XFORM_ID_STRING: root_node.getAttribute(u"id"), common_tags.INSTANCE_DOC_NAME: root_node.nodeName, }) return survey_data
Example #5
Source File: test_minidom.py From ironpython2 with Apache License 2.0 | 6 votes |
def testAltNewline(self): str = '<?xml version="1.0" ?>\n<a b="c"/>\n' dom = parseString(str) domstr = dom.toprettyxml(newl="\r\n") dom.unlink() self.confirm(domstr == str.replace("\n", "\r\n"))
Example #6
Source File: printers.py From py-lua-parser with MIT License | 5 votes |
def get_xml_string(self, tree): xml = self.visit(tree) ast = ElementTree.Element("ast") doc = ElementTree.SubElement(ast, "doc") doc.append(xml) return minidom.parseString(ElementTree.tostring(doc)).toprettyxml(indent=" ")
Example #7
Source File: test_minidom.py From ironpython2 with Apache License 2.0 | 5 votes |
def testWholeText(self): doc = parseString("<doc>a</doc>") elem = doc.documentElement text = elem.childNodes[0] self.assertEqual(text.nodeType, Node.TEXT_NODE) self.checkWholeText(text, "a") elem.appendChild(doc.createTextNode("b")) self.checkWholeText(text, "ab") elem.insertBefore(doc.createCDATASection("c"), text) self.checkWholeText(text, "cab") # make sure we don't cross other nodes splitter = doc.createComment("comment") elem.appendChild(splitter) text2 = doc.createTextNode("d") elem.appendChild(text2) self.checkWholeText(text, "cab") self.checkWholeText(text2, "d") x = doc.createElement("x") elem.replaceChild(x, splitter) splitter = x self.checkWholeText(text, "cab") self.checkWholeText(text2, "d") x = doc.createProcessingInstruction("y", "z") elem.replaceChild(x, splitter) splitter = x self.checkWholeText(text, "cab") self.checkWholeText(text2, "d") elem.removeChild(splitter) self.checkWholeText(text, "cabd") self.checkWholeText(text2, "cabd")
Example #8
Source File: test_minidom.py From ironpython2 with Apache License 2.0 | 5 votes |
def testPatch1094164(self): doc = parseString("<doc><e/></doc>") elem = doc.documentElement e = elem.firstChild self.confirm(e.parentNode is elem, "Before replaceChild()") # Check that replacing a child with itself leaves the tree unchanged elem.replaceChild(e, e) self.confirm(e.parentNode is elem, "After replaceChild()")
Example #9
Source File: fix_root_node_names.py From kobo-predict with BSD 2-Clause "Simplified" License | 5 votes |
def get_xform_root_node_name(xform): parsed = minidom.parseString(xform.xml.encode('utf-8')) instance_xml = parsed.getElementsByTagName('instance')[0] root_node_name = None for child in instance_xml.childNodes: if child.nodeType == child.ELEMENT_NODE: root_node_name = child.nodeName break return root_node_name
Example #10
Source File: permission_util.py From SalesforceXyTools with Apache License 2.0 | 5 votes |
def prettify(self, elem): """Return a pretty-printed XML string for the Element. """ rough_string = ElementTree.tostring(elem, encoding='UTF-8') reparsed = minidom.parseString(rough_string) return reparsed.toprettyxml(indent=" ") # object xml content -> field map
Example #11
Source File: utils.py From network-programmability-stream with MIT License | 5 votes |
def prettify_xml(xml: Union[str, etree._Element]) -> str: if isinstance(xml, etree._Element): result = etree.tostring(xml, pretty_print=True).decode("utf-8") else: result = parseString(xml).toprettyxml(" ") return result
Example #12
Source File: test_minidom.py From ironpython2 with Apache License 2.0 | 5 votes |
def testParents(self): doc = parseString( "<doc><elm1><elm2/><elm2><elm3/></elm2></elm1></doc>") root = doc.documentElement elm1 = root.childNodes[0] (elm2a, elm2b) = elm1.childNodes elm3 = elm2b.childNodes[0] self.confirm(root.parentNode is doc and elm1.parentNode is root and elm2a.parentNode is elm1 and elm2b.parentNode is elm1 and elm3.parentNode is elm2b, "testParents") doc.unlink()
Example #13
Source File: test_process.py From kobo-predict with BSD 2-Clause "Simplified" License | 5 votes |
def _download_xform(self): client = DigestClient() client.set_authorization('bob', 'bob') response = client.get(self.download_url) response_doc = minidom.parseString(response.content) xml_path = os.path.join(self.this_directory, "fixtures", "transportation", "transportation.xml") with open(xml_path) as xml_file: expected_doc = minidom.parse(xml_file) model_node = [ n for n in response_doc.getElementsByTagName("h:head")[0].childNodes if n.nodeType == Node.ELEMENT_NODE and n.tagName == "model"][0] # check for UUID and remove uuid_nodes = [node for node in model_node.childNodes if node.nodeType == Node.ELEMENT_NODE and node.getAttribute("nodeset") == "/transportation/formhub/uuid"] self.assertEqual(len(uuid_nodes), 1) uuid_node = uuid_nodes[0] uuid_node.setAttribute("calculate", "''") # check content without UUID self.assertEqual(response_doc.toxml(), expected_doc.toxml())
Example #14
Source File: util.py From lighter with MIT License | 5 votes |
def xmlRequest(url, data=None, headers={}, method='GET', contentType='application/json', timeout=None): logging.debug('%sing url %s', method, url) response = openRequest(buildRequest(url, data, headers, method, contentType), timeout=timeout).read() return xmlTransform(minidom.parseString(response).documentElement)
Example #15
Source File: dnsrecon.py From Yuki-Chan-The-Auto-Pentest with MIT License | 5 votes |
def prettify(elem): """ Return a pretty-printed XML string for the Element. """ rough_string = ElementTree.tostring(elem, 'utf-8') reparsed = minidom.parseString(rough_string) return reparsed.toprettyxml(indent=" ")
Example #16
Source File: extract_wikipedia_corpora_boxer_test.py From Sentence-Simplification-ACL14 with BSD 3-Clause "New" or "Revised" License | 5 votes |
def prettify(elem): """Return a pretty-printed XML string for the Element. """ rough_string = ET.tostring(elem) reparsed = minidom.parseString(rough_string) prettyxml = reparsed.documentElement.toprettyxml(indent=" ") return prettyxml.encode("utf-8") ###################
Example #17
Source File: __init__.py From faces with GNU General Public License v2.0 | 5 votes |
def create_manifest(self): if WhichElementTree == 'lxml': root = Element('manifest:manifest', nsmap=MANIFEST_NAMESPACE_DICT, nsdict=MANIFEST_NAMESPACE_DICT, ) else: root = Element('manifest:manifest', attrib=MANIFEST_NAMESPACE_ATTRIB, nsdict=MANIFEST_NAMESPACE_DICT, ) doc = etree.ElementTree(root) SubElement(root, 'manifest:file-entry', attrib={ 'manifest:media-type': self.MIME_TYPE, 'manifest:full-path': '/', }, nsdict=MANNSD) SubElement(root, 'manifest:file-entry', attrib={ 'manifest:media-type': 'text/xml', 'manifest:full-path': 'content.xml', }, nsdict=MANNSD) SubElement(root, 'manifest:file-entry', attrib={ 'manifest:media-type': 'text/xml', 'manifest:full-path': 'styles.xml', }, nsdict=MANNSD) SubElement(root, 'manifest:file-entry', attrib={ 'manifest:media-type': 'text/xml', 'manifest:full-path': 'settings.xml', }, nsdict=MANNSD) SubElement(root, 'manifest:file-entry', attrib={ 'manifest:media-type': 'text/xml', 'manifest:full-path': 'meta.xml', }, nsdict=MANNSD) s1 = ToString(doc) doc = minidom.parseString(s1) s1 = doc.toprettyxml(' ') return s1
Example #18
Source File: test_minidom.py From ironpython2 with Apache License 2.0 | 5 votes |
def testEncodings(self): doc = parseString('<foo>€</foo>') self.confirm(doc.toxml() == u'<?xml version="1.0" ?><foo>\u20ac</foo>' and doc.toxml('utf-8') == '<?xml version="1.0" encoding="utf-8"?><foo>\xe2\x82\xac</foo>' and doc.toxml('iso-8859-15') == '<?xml version="1.0" encoding="iso-8859-15"?><foo>\xa4</foo>', "testEncodings - encoding EURO SIGN") # Verify that character decoding errors raise exceptions instead # of crashing self.assertRaises(UnicodeDecodeError, parseString, '<fran\xe7ais>Comment \xe7a va ? Tr\xe8s bien ?</fran\xe7ais>') doc.unlink()
Example #19
Source File: test_minidom.py From ironpython2 with Apache License 2.0 | 5 votes |
def testNodeListItem(self): doc = parseString("<doc><e/><e/></doc>") children = doc.childNodes docelem = children[0] self.confirm(children[0] is children.item(0) and children.item(1) is None and docelem.childNodes.item(0) is docelem.childNodes[0] and docelem.childNodes.item(1) is docelem.childNodes[1] and docelem.childNodes.item(0).childNodes.item(0) is None, "test NodeList.item()") doc.unlink()
Example #20
Source File: test_minidom.py From ironpython2 with Apache License 2.0 | 5 votes |
def testCloneDocumentShallow(self): doc = parseString("<?xml version='1.0'?>\n" "<!-- comment -->" "<!DOCTYPE doc [\n" "<!NOTATION notation SYSTEM 'http://xml.python.org/'>\n" "]>\n" "<doc attr='value'/>") doc2 = doc.cloneNode(0) self.confirm(doc2 is None, "testCloneDocumentShallow:" " shallow cloning of documents makes no sense!")
Example #21
Source File: test_minidom.py From ironpython2 with Apache License 2.0 | 5 votes |
def testSiblings(self): doc = parseString("<doc><?pi?>text?<elm/></doc>") root = doc.documentElement (pi, text, elm) = root.childNodes self.confirm(pi.nextSibling is text and pi.previousSibling is None and text.nextSibling is elm and text.previousSibling is pi and elm.nextSibling is None and elm.previousSibling is text, "testSiblings") doc.unlink()
Example #22
Source File: test_minidom.py From ironpython2 with Apache License 2.0 | 5 votes |
def testBug1433694(self): doc = parseString("<o><i/>t</o>") node = doc.documentElement node.childNodes[1].nodeValue = "" node.normalize() self.confirm(node.childNodes[-1].nextSibling is None, "Final child's .nextSibling should be None")
Example #23
Source File: test_minidom.py From ironpython2 with Apache License 2.0 | 5 votes |
def testNormalizeDeleteWithTwoNonTextSiblings(self): doc = parseString("<doc/>") root = doc.documentElement root.appendChild(doc.createElement("i")) root.appendChild(doc.createTextNode("")) root.appendChild(doc.createElement("i")) self.confirm(len(root.childNodes) == 3 and root.childNodes.length == 3, "testNormalizeDeleteWithTwoSiblings -- preparation") doc.normalize() self.confirm(len(root.childNodes) == 2 and root.childNodes.length == 2 and root.firstChild is not root.lastChild and root.firstChild.nextSibling is root.lastChild and root.firstChild.previousSibling is None and root.lastChild.previousSibling is root.firstChild and root.lastChild.nextSibling is None , "testNormalizeDeleteWithTwoSiblings -- result") doc.unlink()
Example #24
Source File: test_minidom.py From ironpython2 with Apache License 2.0 | 5 votes |
def testNormalizeDeleteWithNextSibling(self): doc = parseString("<doc/>") root = doc.documentElement root.appendChild(doc.createTextNode("")) root.appendChild(doc.createTextNode("second")) self.confirm(len(root.childNodes) == 2 and root.childNodes.length == 2, "testNormalizeDeleteWithNextSibling -- preparation") doc.normalize() self.confirm(len(root.childNodes) == 1 and root.childNodes.length == 1 and root.firstChild.data == "second" and root.firstChild is root.lastChild and root.firstChild.nextSibling is None and root.firstChild.previousSibling is None , "testNormalizeDeleteWithNextSibling -- result") doc.unlink()
Example #25
Source File: test_minidom.py From ironpython2 with Apache License 2.0 | 5 votes |
def testNormalizeDeleteWithPrevSibling(self): doc = parseString("<doc/>") root = doc.documentElement root.appendChild(doc.createTextNode("first")) root.appendChild(doc.createTextNode("")) self.confirm(len(root.childNodes) == 2 and root.childNodes.length == 2, "testNormalizeDeleteWithPrevSibling -- preparation") doc.normalize() self.confirm(len(root.childNodes) == 1 and root.childNodes.length == 1 and root.firstChild.data == "first" and root.firstChild is root.lastChild and root.firstChild.nextSibling is None and root.firstChild.previousSibling is None , "testNormalizeDeleteWithPrevSibling -- result") doc.unlink()
Example #26
Source File: test_minidom.py From ironpython2 with Apache License 2.0 | 5 votes |
def testNormalize(self): doc = parseString("<doc/>") root = doc.documentElement root.appendChild(doc.createTextNode("first")) root.appendChild(doc.createTextNode("second")) self.confirm(len(root.childNodes) == 2 and root.childNodes.length == 2, "testNormalize -- preparation") doc.normalize() self.confirm(len(root.childNodes) == 1 and root.childNodes.length == 1 and root.firstChild is root.lastChild and root.firstChild.data == "firstsecond" , "testNormalize -- result") doc.unlink() doc = parseString("<doc/>") root = doc.documentElement root.appendChild(doc.createTextNode("")) doc.normalize() self.confirm(len(root.childNodes) == 0 and root.childNodes.length == 0, "testNormalize -- single empty node removed") doc.unlink()
Example #27
Source File: test_minidom.py From ironpython2 with Apache License 2.0 | 5 votes |
def check_clone_pi(self, deep, testName): doc = parseString("<?target data?><doc/>") pi = doc.firstChild self.assertEqual(pi.nodeType, Node.PROCESSING_INSTRUCTION_NODE) clone = pi.cloneNode(deep) self.confirm(clone.target == pi.target and clone.data == pi.data)
Example #28
Source File: test_minidom.py From ironpython2 with Apache License 2.0 | 5 votes |
def check_clone_attribute(self, deep, testName): doc = parseString("<doc attr='value'/>") attr = doc.documentElement.getAttributeNode("attr") self.assertNotEqual(attr, None) clone = attr.cloneNode(deep) self.confirm(not clone.isSameNode(attr)) self.confirm(not attr.isSameNode(clone)) self.confirm(clone.ownerElement is None, testName + ": ownerElement should be None") self.confirm(clone.ownerDocument.isSameNode(attr.ownerDocument), testName + ": ownerDocument does not match") self.confirm(clone.specified, testName + ": cloned attribute must have specified == True")
Example #29
Source File: GXDLMSObjectCollection.py From Gurux.DLMS.Python with GNU General Public License v2.0 | 5 votes |
def save(self, name, settings=None): writer = GXXmlWriter() objects = ET.Element("Objects") for it in self: node = ET.SubElement(objects, "GXDLMS" + GXDLMSConverter.objectTypeToString(it.objectType)) if it.shortName != 0: ET.SubElement(node, "SN").text = str(it.shortName) ET.SubElement(node, "LN").text = it.logicalName if it.version != 0: ET.SubElement(node, "Version").text = str(it.version) if it.description: ET.SubElement(node, "Description").text = it.description if not settings or settings.values: writer.objects = [] writer.objects.append(node) it.save(writer) str_ = minidom.parseString(ET.tostring(objects, encoding='utf-8', method='xml')).toprettyxml(indent=" ") with open(name, "w") as f: f.write(str_)
Example #30
Source File: test_minidom.py From ironpython2 with Apache License 2.0 | 5 votes |
def check_import_document(self, deep, testName): doc1 = parseString("<doc/>") doc2 = parseString("<doc/>") self.assertRaises(xml.dom.NotSupportedErr, doc1.importNode, doc2, deep)