Python xml.dom.minidom 模块,parseString() 实例源码

我们从Python开源项目中,提取了以下50个代码示例,用于说明如何使用xml.dom.minidom.parseString()

项目:SceneDensity    作者:ImOmid    | 项目源码 | 文件源码
def addTree(self, title, data, row=None, column=0, colspan=0, rowspan=0):
        self.__verifyItem(self.n_trees, title, True)

        self.__importAjtree()
        if parseString is False:
            self.warn("Unable to parse xml files. .addTree() not available")
            return

        xmlDoc = parseString(data)

        frame = ScrollPane(
            self.__getContainer(),
            relief=RAISED,
            borderwidth=2,
            bg="white",
            highlightthickness=0,
            takefocus=1)
        self.__positionWidget(frame, row, column, colspan, rowspan, "NSEW")

        item = ajTreeData(xmlDoc.documentElement)
        node = ajTreeNode(frame.getPane(), None, item)
        self.n_trees[title] = node
        # update() & expand() called in go() function
项目:core-framework    作者:RedhawkSDR    | 项目源码 | 文件源码
def parseDomainManager (self):
        identifier = self.addTreeWidgetItem(self.domMgrItem, 'Identifier:', self.domManager._get_identifier())
        profile = self.addTreeWidgetItem(self.domMgrItem, 'Profile:', self.domManager._get_domainManagerProfile())
        self.domMgrPropsItem = self.addTreeWidgetItem(self.domMgrItem, 'Properties')

        # Read the DMD file to get the SPD file, which can then be used to get the properties.
        _xmlFile = self.fileMgr.open(str(self.domManager._get_domainManagerProfile()), True)
        dmd = minidom.parseString(_xmlFile.read(_xmlFile.sizeOf()))      
        _xmlFile.close()
        spdFile = dmd.getElementsByTagName('localfile')[0].getAttribute('name')
        if not spdFile.startswith("/"):
            spdFile = os.path.join(os.path.dirname(xmlfile), spdFile)

        # Get the property name mapping.
        prfFile = getPropertyFile(spdFile, self.fileMgr)
        self.domMgrProps = parsePropertyFile(prfFile, self.fileMgr)

        # Create entries for all of the properties.
        try:
            props = self.domManager.query([])
        except:
            props = []
        self.buildPropertiesListView_old(self.domMgrPropsItem, props, self.domMgrProps)
项目:mongodb_backup_script    作者:hxt168    | 项目源码 | 文件源码
def __init__(self, xml_string):
        self.xml_unescape_table = {}
        self.xml_map = {}
        try:
            self.xml = minidom.parseString(xml_string)
        except:
            print xml_string
            self.xml_unescape_tabl = get_xml_unescape_table()
            self.xml_map = get_xml_unescape_map()
            for k, v in self.xml_map.items():
                xml_string = xml_string.replace(k, v)
            self.xml = minidom.parseString(xml_string)
        self.bucket = get_tag_text(self.xml, 'Bucket', convert_to_bool = False)
        self.object = get_tag_text(self.xml, 'Key', convert_to_bool = False)
        if self.xml_map:
            for k, v in self.xml_map.items():
                self.object = self.object.replace(v, k)
            self.object = unescape(self.object, self.xml_unescape_table)
        self.key = get_tag_text(self.xml, 'Key', convert_to_bool = False)
        self.upload_id = get_tag_text(self.xml, 'UploadId')
        self.marker = get_tag_text(self.xml, 'Marker', convert_to_bool = False)
项目:mongodb_backup_script    作者:hxt168    | 项目源码 | 文件源码
def __init__(self, xml_string):
        try:
            self.xml = minidom.parseString(xml_string)
        except:
            print xml_string
        self.bucket = get_tag_text(self.xml, 'Bucket', convert_to_bool = False)
        self.type = get_tag_text(self.xml, 'Type', convert_to_bool = False)
        self.key = get_tag_text(self.xml, 'Key', convert_to_bool = False)
        self.last_modified = get_tag_text(self.xml, 'LastModified', convert_to_bool = False)
        self.etag = get_tag_text(self.xml, 'ETag', convert_to_bool = False)
        self.content_type = get_tag_text(self.xml, 'Content-Type')
        self.size = get_tag_text(self.xml, 'Size', convert_to_bool = False)
        self.parts = []
        parts = self.xml.getElementsByTagName('Part')
        for p in parts:
            self.parts.append(Part(p))
项目:Tinychat-Bot--Discontinued    作者:Tinychat    | 项目源码 | 文件源码
def get_broadcast_token(self, nick, uid):
        """ Token required to start a broadcast.

        :param nick: Client nick name
        :type nick: str
        :param uid: Client user identification
        :type uid: str | int
        :return: The broadcast token required to start a broadcast or None on failure.
        :rtype: str | None
        """
        _url = self._broadcast_token_url.format(self.room_name, nick, uid)
        if self.is_greenroom:
            _url.replace('site=tinychat', 'site=greenroom')

        _response = util.web.http_get(url=_url, proxy=self.proxy)
        log.debug('broadcast token response: %s' % _response)
        if _response['content'] is not None:
            _xml = parseString(_response['content'])
            root = _xml.getElementsByTagName('response')[0]
            result = root.getAttribute('result')
            if result == 'PW':
                return result
            return root.getAttribute('token')
        return None
项目:Cryptokey_Generator    作者:8BitCookie    | 项目源码 | 文件源码
def addTree(self, title, data, row=None, column=0, colspan=0, rowspan=0):
        self.__verifyItem(self.n_trees, title, True)

        self.__importAjtree()
        if parseString is False:
            self.warn("Unable to parse xml files. .addTree() not available")
            return

        xmlDoc = parseString(data)

        frame = ScrollPane(
            self.__getContainer(),
            relief=RAISED,
            borderwidth=2,
            bg="white",
            highlightthickness=0,
            takefocus=1)
        self.__positionWidget(frame, row, column, colspan, rowspan, "NSEW")

        item = ajTreeData(xmlDoc.documentElement)
        node = ajTreeNode(frame.getPane(), None, item)
        self.n_trees[title] = node
        # update() & expand() called in go() function
项目:py-enarksh-lib    作者:SetBased    | 项目源码 | 文件源码
def get_xml(self, encoding='utf-8'):
        """
        Returns the XML-code of this schedule.

        The returned byte string contains the XML in the requested encoding. You save the byte sting to file in binary
        mode (the file will encoded the requested encoding). Or you can convert the byte string to a string with
        .decode(encoding).

        :param str encoding: The encoding of the XML.

        :rtype: bytes
        """
        tree = Element(None)
        self.generate_xml(tree)

        xml_string = ElementTree.tostring(tree)
        document = minidom.parseString(xml_string)

        return document.toprettyxml(indent=' ', encoding=encoding)

    # ------------------------------------------------------------------------------------------------------------------
项目:whatsapp-rest-webservice    作者:svub    | 项目源码 | 文件源码
def parse(self, xml, pvars):

        #tmp = minidom.parseString(xml)

        if sys.version_info >= (3, 0):
            pl = plistlib.readPlistFromBytes(xml.encode());
        else:
            pl = plistlib.readPlistFromString(xml);

        parsed= {}
        pvars = self.getVars(pvars)

        for k,v in pvars.items():
            parsed[k] = pl[k] if  k in pl else None

        return parsed;
项目:zeronet-debian    作者:bashrc    | 项目源码 | 文件源码
def _parse_igd_profile(profile_xml):
    """
    Traverse the profile xml DOM looking for either
    WANIPConnection or WANPPPConnection and return
    the value found as well as the 'controlURL'.
    """
    dom = parseString(profile_xml)

    service_types = dom.getElementsByTagName('serviceType')
    for service in service_types:
        if _node_val(service).find('WANIPConnection') > 0 or \
           _node_val(service).find('WANPPPConnection') > 0:
            control_url = service.parentNode.getElementsByTagName(
                'controlURL'
            )[0].childNodes[0].data
            upnp_schema = _node_val(service).split(':')[-2]
            return control_url, upnp_schema

    return False
项目:zeronet-debian    作者:bashrc    | 项目源码 | 文件源码
def _parse_for_errors(soap_response):
    if soap_response.status == 500:
        response_data = soap_response.read()
        try:
            err_dom = parseString(response_data)
            err_code = _node_val(err_dom.getElementsByTagName('errorCode')[0])
            err_msg = _node_val(
                err_dom.getElementsByTagName('errorDescription')[0]
            )
        except Exception, err:
            logging.error("Unable to parse SOAP error: {0}, response: {1}".format(err, response_data))
            return False

        logging.error('SOAP request error: {0} - {1}'.format(err_code, err_msg))
        raise Exception(
            'SOAP request error: {0} - {1}'.format(err_code, err_msg)
        )

        return False
    else:
        return True
项目:maltego_tds_transforms    作者:passivetotal    | 项目源码 | 文件源码
def test_valid_calls(endpoint, details):
    """Test all endpoints with valid calls."""
    full_url = MALTEGO_SERVER + endpoint
    logging.debug("Requesting %s" % full_url)
    response = requests.post(
        full_url,
        data=build_maltego_response(details),
        auth=(API_USERNAME, API_KEY),
        verify=False
    )
    logging.debug("Response %s" % response.content)
    assert response.status_code == 200
    xmldoc = minidom.parseString(response.content)
    messages = xmldoc.getElementsByTagName('UIMessage')
    for message in messages:
        value = message.attributes['MessageType'].value
        assert value != 'FatalError'
项目:do-portal    作者:certeu    | 项目源码 | 文件源码
def send_body(self, body):
        """Send the body

        :param body:
        :return: A  tuple in the form
          ``(:class:`~xml.dom.minidom.Element`, String)``
        """
        out = body.toxml()
        response = \
            self.request_session.post(
                self.bosh_service.geturl(),
                data=out)
        if response.status_code == 200:
            data = response.text
        else:
            data = ''
        doc = minidom.parseString(data)
        return (doc.documentElement, data)
项目:python-fritzbox    作者:pamapa    | 项目源码 | 文件源码
def write(self, filename):
    xml = ET.Element("phonebooks")
    for book in self.phonebookList:
      xml.append(book.getXML())
    tree = ET.ElementTree(xml)
    if False:    
      tree.write(filename, encoding="iso-8859-1", xml_declaration=True)
    else:
      rough_string = ET.tostring(tree.getroot(), encoding="iso-8859-1", method="xml")
      reparsed = parseString(rough_string)
      pretty = reparsed.toprettyxml(indent="  ", encoding="iso-8859-1").decode("iso-8859-1")
      with open(filename, 'w', encoding="iso-8859-1") as outfile:
        outfile.write(pretty)

  # sid: Login session ID
  # phonebookid: 0 for main phone book
  #              1 for next phone book in list, etc...
项目:motu-client-python    作者:clstoulouse    | 项目源码 | 文件源码
def get_requestUrl(dl_url, server, **options):
    """ Get the request url."""    
    stopWatch = stop_watch.localThreadStopWatch()    
    start_time = datetime.datetime.now()
    stopWatch.start('get_request')
    log.info( "Requesting file to download (this can take a while)..." ) 

    # Get request id        
    m = utils_http.open_url(dl_url, **options)
    responseStr = m.read()
    dom = minidom.parseString(responseStr)
    node = dom.getElementsByTagName('statusModeResponse')[0]
    status = node.getAttribute('status')
    if status == "2":
        msg = node.getAttribute('msg')
        log.error(msg)
        get_req_url = None
    else:
        requestId = node.getAttribute('requestId')
        # Get request url
        get_req_url = server + '?action=getreqstatus&requestid=' + requestId

    stopWatch.stop('get_request')

    return get_req_url
项目:warriorframework    作者:warriorframework    | 项目源码 | 文件源码
def saveFile(filename, subdirs, filetype):
    dir_path = getDirectoryPath(subdirs)
    xmldom = parseString("".join(request.body))
    if filename != "":
        cfg = readconfig()
        xmldir = cfg[filetype]
        indented_xml = "".join(xmldom.toprettyxml(newl='\n'))
        corrected_xml = remove_extra_newlines_char_xml(indented_xml)
        print corrected_xml
        with open(xmldir + dir_path + os.sep + filename, "w") as f:
            f.write(corrected_xml)
        output = {"success": True,
                  "path": filename}
    else:
        output = {"success": False,
                  "error": "Save called without a filename or content!"}

    return output
项目:warriorframework    作者:warriorframework    | 项目源码 | 文件源码
def get_output_response(api_response):
        if api_response is not None:
            try:
                output_response = parseString("".join(api_response.text))
            except:
                try:
                    JSON.loads(api_response.text)
                except:
                    output_response = api_response.text.encode('ascii', 'ignore')
                    pNote("api_response Text: \n {0}".format(output_response))
                else:
                    output_response = api_response.json()
                    pNote("api_response (JSON format): \n {0}".
                          format(JSON.dumps(output_response, indent=4)))
            else:
                pNote("api_response (XML format): \n {0}".
                      format(output_response.toprettyxml(newl='\n')))
        else:
            output_response = None
        return output_response
项目:warriorframework    作者:warriorframework    | 项目源码 | 文件源码
def main():
    """ This function basically creates the xml file by calling various other
     functions, runs the file and then saves it.

    """
    root = Element('data')
    dir_path = os.path.dirname(os.path.realpath(sys.argv[0]))
    rel_path = get_relative_path(dir_path, "data.xml")
    tree = xml.etree.ElementTree.parse(rel_path)
    input_root = tree.getroot()
    nodes = get_firstlevel_children(input_root, "tag")

    populate_xml(root, nodes)

    temp_xml = 'temp.xml'
    pretty_xml = minidom.parseString(xml.etree.ElementTree.tostring(root))\
        .toprettyxml(indent="   ")
    with open(temp_xml, "w") as config_file:
        config_file.write(pretty_xml)
        config_file.flush()
    config_file.close()

    save_file(temp_xml)
项目:VManagePlatform    作者:welliamcao    | 项目源码 | 文件源码
def getVmIsoList(self):
        isoList = []
        try:               
            vMdisk = self.conn.listStoragePools()
            for vM in vMdisk:
                pool = self.conn.storagePoolLookupByName(vM)
                stgvols = pool.listVolumes()
                for stgvolname in stgvols:
                    volData = dict()
                    stgvol = pool.storageVolLookupByName(stgvolname)
                    info = stgvol.info()
                    try:
                        volXml = stgvol.XMLDesc(0)
                        xml = minidom.parseString(volXml)
                        volData['vol_type'] = xml.getElementsByTagName('target')[0].getElementsByTagName('format')[0].getAttribute('type')
                    except:
                        volData['vol_type'] = 'unkonwn'
                    volData['vol_name'] = stgvol.name()
                    volData['vol_size'] = info[1] / 1024/ 1024/ 1024
                    volData['vol_available'] = info[2] / 1024/ 1024/ 1024
                    volData['vol_path'] = stgvol.path()
                    if volData['vol_type'].endswith('.iso') or volData['vol_path'].endswith('.iso'):isoList.append(volData)
            return isoList
        except libvirt.libvirtError:                    
            return isoList
项目:VManagePlatform    作者:welliamcao    | 项目源码 | 文件源码
def delInstanceDisk(self,instance,volPath):
        '''????'''
        diskXml = None
        raw_xml = instance.XMLDesc(0)
        domXml = minidom.parseString(raw_xml)
        for ds in domXml.getElementsByTagName('disk'):
            try:
                path = ds.getElementsByTagName('source')[0].getAttribute('file')
            except:
                continue
            if path == volPath:diskXml = ds.toxml()  
        if diskXml:
            try:
                return instance.detachDeviceFlags(diskXml,3)
            except libvirt.libvirtError,e:
                return '??????????????{result}'.format(result=e.get_error_message()) 
        else:return False
项目:kindred    作者:jakelever    | 项目源码 | 文件源码
def parseSimpleTag(text,ignoreEntities=[]):
    docText = u"<doc>%s</doc>" % text
    xmldoc = minidom.parseString(docText.encode('utf8'))
    docNode = xmldoc.childNodes[0]
    text,unmergedEntities,relations = parseSimpleTag_helper(docNode,ignoreEntities=ignoreEntities)

    missingSourceEntityID = [ e.sourceEntityID == '' for e in unmergedEntities ]
    assert all(missingSourceEntityID) or (not any(missingSourceEntityID)), 'All entities or none (not some) should be given IDs'
    assert (not any(missingSourceEntityID)) or len(relations) == 0, "Cannot include relations with no-ID entities"

    if all(missingSourceEntityID):
        for i,e in enumerate(unmergedEntities):
            e.sourceEntityID = i+1

    entities = mergeEntitiesWithMatchingIDs(unmergedEntities)

    combinedData = kindred.Document(text,entities=entities,relations=relations)
    return combinedData
项目:pyfeld    作者:scjurgen    | 项目源码 | 文件源码
def do_NOTIFY(self):
        global needs_to_reload_zone_config
        global raumfeld_handler
        uuid = "uuid:"+self.path[1:]
        friendly_name = RfCmd.map_udn_to_friendly_name(uuid)
        content_length = int(self.headers['content-length'])
        notification = self.rfile.read(content_length)
        result = minidom.parseString(notification.decode('UTF-8'))
        #print("\n\n#NOTIFY:\n" + result.toprettyxml())
        notification_content = XmlHelper.xml_extract_dict(result,
                                                          ['LastChange',
                                                           'Revision',
                                                           'SystemUpdateID',
                                                           'BufferFilled'])
        if len(notification_content['LastChange']):
            if '/Preferences/ZoneConfig/Rooms' in notification_content['LastChange']:
                needs_to_reload_zone_config = True
            last_change = minidom.parseString(notification_content['LastChange'])
            uuid_store.set(uuid, friendly_name[0], friendly_name[1], last_change)
            raumfeld_handler.set_subscription_values("uuid:" + self.path[1:], last_change)
            #print("\n\n#NOTIFY LastChange: "+self.path+"\n"+last_change.toprettyxml())
        self.send_response(200)
        self.end_headers()
项目:pyfeld    作者:scjurgen    | 项目源码 | 文件源码
def get_services_from_location(location):
        try:
            (xml_headers, xml_data) = UpnpSoap.get(location)
            if xml_data is not False:
                xml_root = minidom.parseString(xml_data)
                services_list = list()
                for service in xml_root.getElementsByTagName("service"):
                    service_dict = XmlHelper.xml_extract_dict(service, ['serviceType',
                                                                   'controlURL',
                                                                   'eventSubURL',
                                                                   'SCPDURL',
                                                                   'serviceId'])
                    services_list.append(service_dict)
                return services_list
        except Exception as e:
            print("Error get_subscription_urls:{0}".format(e))
        return None
项目:python-cas-client    作者:discogs    | 项目源码 | 文件源码
def _parse_cas_xml_response(cls, response_text):
        cas_type = 'noResponse'
        cas_data = {}
        if not response_text:
            return cas_type, cas_data
        xml_document = parseString(response_text)
        node_element = xml_document.documentElement
        if node_element.nodeName != 'cas:serviceResponse':
            raise Exception
        for child in node_element.childNodes:
            if child.nodeType != child.ELEMENT_NODE:
                continue
            cas_type = child.nodeName.replace("cas:", "")
            cas_data = cls._parse_cas_xml_data(child)
            break
        return cas_type, cas_data
项目:Tinychat-Bot-Minimal--Discontinued    作者:Tinychat    | 项目源码 | 文件源码
def get_broadcast_token(self, nick, uid):
        """ Token required to start a broadcast.

        :param nick: Client nick name
        :type nick: str
        :param uid: Client user identification
        :type uid: str | int
        :return: The broadcast token required to start a broadcast or None on failure.
        :rtype: str | None
        """
        _url = self._broadcast_token_url.format(self.room_name, nick, uid)
        if self.is_greenroom:
            _url.replace('site=tinychat', 'site=greenroom')

        _response = util.web.http_get(url=_url, proxy=self.proxy)
        log.debug('broadcast token response: %s' % _response)
        if _response['content'] is not None:
            _xml = parseString(_response['content'])
            root = _xml.getElementsByTagName('response')[0]
            result = root.getAttribute('result')
            if result == 'PW':
                return result
            return root.getAttribute('token')
        return None
项目:flickr-crawler    作者:chenusc11    | 项目源码 | 文件源码
def upload(self,filename, **params):
    #x = flickr._prepare_params(params)
    #args['api_key'] = self.__api_key 
    args = params
    sig = flickr._get_api_sig(params=params)

    args['api_key'] = flickr.API_KEY
    args['api_sig'] = sig
    args['auth_token'] = flickr.userToken()

    f = file(filename, 'rb')
    photo_data = f.read()
    f.close()

    # now make a "files" array to pass to uploader
    files = [('photo', filename, photo_data)]
    response = post_multipart('api.flickr.com', '/services/upload/', args, files)

    # use get data since error checking is handled by it already
    data = flickr._get_data(minidom.parseString(response))
    photo = flickr.Photo(data.rsp.photoid.text)

    return photo
项目:pentestly    作者:praetorian-inc    | 项目源码 | 文件源码
def module_run(self):
        filename = self.options['filename']
        with codecs.open(filename, 'wb', encoding='utf-8') as outfile:
            # build a list of table names
            tables = [x.strip() for x in self.options['tables'].split(',')]
            data_dict = {}
            cnt = 0
            for table in tables:
                data_dict[table] = []
                columns = [x[0] for x in self.get_columns(table)]
                rows = self.query('SELECT "%s" FROM "%s" ORDER BY 1' % ('", "'.join(columns), table))
                for row in rows:
                    row_dict = {}
                    for i in range(0,len(columns)):
                        row_dict[columns[i]] = row[i]
                    data_dict[table].append(row_dict)
                    cnt += 1
            # write the xml to a file
            reparsed = parseString(dicttoxml(data_dict))
            outfile.write(reparsed.toprettyxml(indent=' '*4))
        self.output('%d records added to \'%s\'.' % (cnt, filename))
项目:Python-Network-Programming-Cookbook-Second-Edition    作者:PacktPublishing    | 项目源码 | 文件源码
def search_for_books(tag, index):
    """Search Amazon for Books """
    amazon = bottlenose.Amazon(ACCESS_KEY, SECRET_KEY, AFFILIATE_ID)
    results = amazon.ItemSearch(
                SearchIndex = index,
                Sort = "relevancerank",
                Keywords = tag
                )
    parsed_result = xml.parseString(results)

    all_items = []
    attrs = ['Title','Author', 'URL']

    for item in parsed_result.getElementsByTagName('Item'):
        parse_item = {}

        for attr in attrs:
            parse_item[attr] = ""
            try:
                parse_item[attr] = item.getElementsByTagName(attr)[0].childNodes[0].data
            except:
                pass
        all_items.append(parse_item)
    return all_items
项目:tldr-alfred    作者:cs1707    | 项目源码 | 文件源码
def gen_xml(rowList):
  items = Element('items')

  for row in rowList:
    item = SubElement(items, 'item')
    item.set('autocomplete', row.get('autocomplete') or '')
    item.set('uid', row.get('uid') or '')
    item.set('arg', row.get('title') or '')
    item.set('valid', row.get('valid') or '')

    title = SubElement(item, 'title')
    title.text = row.get('title') or ''

    subtitle = SubElement(item, 'subtitle')
    subtitle.text = row.get('subtitle') or ''

    icon = SubElement(item, 'icon')
    icon.text = row.get('icon')

  tree = minidom.parseString(etree.tostring(items))
  return tree.toxml()
项目:inter    作者:rsms    | 项目源码 | 文件源码
def glyphUpdateFromSVG(g, svgCode):
  doc = xmlparseString(svgCode)
  svg = doc.documentElement
  paths = findPathNodes(svg)
  if len(paths) == 0:
    raise Exception('no <path> found in SVG')
  path = paths[0]
  if len(paths) != 1:
    for p in paths:
      id = p.getAttribute('id')
      if id is not None and id.find('stroke') == -1:
        path = p
        break

  tr = nodeTranslation(path)
  d = path.getAttribute('d')
  g.clearContours()
  drawSVGPath(g, d, tr)
项目:inter    作者:rsms    | 项目源码 | 文件源码
def svgGetPaths(svgCode):
  doc = xmlparseString(svgCode)
  svg = doc.documentElement
  paths = findPathNodes(svg)
  isFigmaSVG = svgCode.find('Figma</desc>') != -1

  if len(paths) == 0:
    return paths, (0,0)

  paths2 = []
  for path in paths:
    id = path.getAttribute('id')
    if not isFigmaSVG or (id is None or id.find('stroke') == -1):
      tr = nodeTranslation(path)
      d = path.getAttribute('d')
      paths2.append((d, tr))

  return paths2, isFigmaSVG
项目:inter    作者:rsms    | 项目源码 | 文件源码
def glyphUpdateFromSVG(g, svgCode):
  doc = xmlparseString(svgCode)
  svg = doc.documentElement
  paths = findPathNodes(svg)
  if len(paths) == 0:
    raise Exception('no <path> found in SVG')
  path = paths[0]
  if len(paths) != 1:
    for p in paths:
      id = p.getAttribute('id')
      if id is not None and id.find('stroke') == -1:
        path = p
        break

  tr = nodeTranslation(path)
  d = path.getAttribute('d')
  g.clearContours()
  drawSVGPath(g, d, tr)
项目:lawsofindia    作者:sushant354    | 项目源码 | 文件源码
def main(input_xml, loghandle):
    xmlhandle    = minidom.parseString(input_xml)
    documentNode = xmlhandle.childNodes[0].childNodes

    tags        = '<act>'

    for articleNode in documentNode:
        if articleNode.nodeType != Node.ELEMENT_NODE:
            tags += articleNode.data
        else:
            if articleNode.tagName != 'article':
                tags += xmlExtract.get_complete_tag(articleNode)
            else:
                tags += get_article_data(articleNode, loghandle)
    tags +=  '</act>\n'

    return tags
项目:DevOps    作者:YoLoveLife    | 项目源码 | 文件源码
def _parse_repos(module):
    """parses the output of zypper --xmlout repos and return a parse repo dictionary"""
    cmd = _get_cmd('--xmlout', 'repos')

    from xml.dom.minidom import parseString as parseXML
    rc, stdout, stderr = module.run_command(cmd, check_rc=False)
    if rc == 0:
        repos = []
        dom = parseXML(stdout)
        repo_list = dom.getElementsByTagName('repo')
        for repo in repo_list:
            opts = {}
            for o in REPO_OPTS:
                opts[o] = repo.getAttribute(o)
            opts['url'] = repo.getElementsByTagName('url')[0].firstChild.data
            # A repo can be uniquely identified by an alias + url
            repos.append(opts)
        return repos
    # exit code 6 is ZYPPER_EXIT_NO_REPOS (no repositories defined)
    elif rc == 6:
        return []
    else:
        module.fail_json(msg='Failed to execute "%s"' % " ".join(cmd), rc=rc, stdout=stdout, stderr=stderr)
项目:aiida-quantumespresso    作者:aiidateam    | 项目源码 | 文件源码
def parse_cp_xml_counter_output(data):
    """
    Parse xml file print_counter.xml
    data must be a single string, as returned by file.read() (notice the
    difference with parse_text_output!)
    On output, a dictionary with parsed values.
    """
    dom = parseString(data)
    parsed_data = {}
    cardname = 'LAST_SUCCESSFUL_PRINTOUT'

    card1 = [_ for _ in dom.childNodes if _.nodeName == 'PRINT_COUNTER'][0]
    card2 = [_ for _ in card1.childNodes if _.nodeName == 'LAST_SUCCESSFUL_PRINTOUT'][0]

    tagname = 'STEP'
    parsed_data[cardname.lower().replace('-', '_')] = parse_xml_child_integer(tagname, card2)

    return parsed_data
项目:aiida-quantumespresso    作者:aiidateam    | 项目源码 | 文件源码
def parse_cp_xml_counter_output(data):
    """
    Parse xml file print_counter.xml
    data must be a single string, as returned by file.read() (notice the
    difference with parse_text_output!)
    On output, a dictionary with parsed values.
    """
    dom = parseString(data)
    parsed_data={}
    cardname='LAST_SUCCESSFUL_PRINTOUT'

    card1 = [ _ for _ in dom.childNodes if _.nodeName=='PRINT_COUNTER'][0]
    card2 = [ _ for _ in card1.childNodes if _.nodeName=='LAST_SUCCESSFUL_PRINTOUT'][0]

    tagname='STEP'
    parsed_data[cardname.lower().replace('-','_')] = parse_xml_child_integer(tagname,card2)

    return parsed_data
项目:nsc-cloudproject-s22016    作者:agitaretech    | 项目源码 | 文件源码
def convert_xml_to_azure_object(xmlstr, azure_type, include_id=True, use_title_as_id=True):
        xmldoc = minidom.parseString(xmlstr)
        return_obj = azure_type()
        xml_name = azure_type._xml_name if hasattr(azure_type, '_xml_name') else azure_type.__name__

        # Only one entry here
        for xml_entry in _MinidomXmlToObject.get_children_from_path(xmldoc,
                                                 'entry'):
            for node in _MinidomXmlToObject.get_children_from_path(xml_entry,
                                                'content',
                                                xml_name):
                _MinidomXmlToObject._fill_data_to_return_object(node, return_obj)
            for name, value in _MinidomXmlToObject.get_entry_properties_from_node(
                xml_entry,
                include_id=include_id,
                use_title_as_id=use_title_as_id).items():
                setattr(return_obj, name, value)
        return return_obj
项目:nsc-cloudproject-s22016    作者:agitaretech    | 项目源码 | 文件源码
def convert_response_to_feeds(response, convert_func):
        if response is None:
            return None

        feeds = _list_of(Feed)

        _set_continuation_from_response_headers(feeds, response)

        xmldoc = minidom.parseString(response.body)
        xml_entries = _MinidomXmlToObject.get_children_from_path(xmldoc, 'feed', 'entry')
        if not xml_entries:
            # in some cases, response contains only entry but no feed
            xml_entries = _MinidomXmlToObject.get_children_from_path(xmldoc, 'entry')
        for xml_entry in xml_entries:
            new_node = _MinidomXmlToObject._clone_node_with_namespaces(xml_entry, xmldoc)
            feeds.append(convert_func(new_node.toxml('utf-8')))

        return feeds
项目:leetcode    作者:thomasyimgit    | 项目源码 | 文件源码
def data(self, svg):
        if svg is None:
            self._data = None
            return
        # parse into dom object
        from xml.dom import minidom
        x = minidom.parseString(svg)
        # get svg tag (should be 1)
        found_svg = x.getElementsByTagName('svg')
        if found_svg:
            svg = found_svg[0].toxml()
        else:
            # fallback on the input, trust the user
            # but this is probably an error.
            pass
        svg = cast_unicode(svg)
        self._data = svg
项目:tumanov_castleoaks    作者:Roamdev    | 项目源码 | 文件源码
def get_info(cls, video_key):
        req = request.Request('http://rutube.ru/api/video/%s/?format=xml' % video_key, method='GET')
        try:
            logger.debug('{0.method} {0.full_url}'.format(req))
            response = request.urlopen(req, timeout=3)
        except error.URLError:
            return None

        if response.status != 200:
            return None

        dom = minidom.parseString(response.read())

        title = dom.getElementsByTagName('title').item(0)
        description = dom.getElementsByTagName('description').item(0)
        thumbnail = dom.getElementsByTagName('thumbnail_url').item(0)
        embed = dom.getElementsByTagName('html').item(0)

        return {
            'title': title.firstChild.data,
            'description': description.firstChild.data,
            'preview_url': thumbnail.firstChild.data,
            'embed': embed.firstChild.data
        }
项目:zippy    作者:securesystemslab    | 项目源码 | 文件源码
def read_hypergraph(string):
    """
    Read a graph from a XML document. Nodes and hyperedges specified in the input will be added
    to the current graph.

    @type  string: string
    @param string: Input string in XML format specifying a graph.

    @rtype: hypergraph
    @return: Hypergraph
    """

    hgr = hypergraph()

    dom = parseString(string)
    for each_node in dom.getElementsByTagName("node"):
        hgr.add_node(each_node.getAttribute('id'))
    for each_node in dom.getElementsByTagName("hyperedge"):
        hgr.add_hyperedge(each_node.getAttribute('id'))
    dom = parseString(string)
    for each_node in dom.getElementsByTagName("node"):
        for each_edge in each_node.getElementsByTagName("link"):
            hgr.link(str(each_node.getAttribute('id')), str(each_edge.getAttribute('to')))
    return hgr
项目:zippy    作者:securesystemslab    | 项目源码 | 文件源码
def testGetElementsByTagNameNS(self):
        d="""<foo xmlns:minidom='http://pyxml.sf.net/minidom'>
        <minidom:myelem/>
        </foo>"""
        dom = parseString(d)
        elems = dom.getElementsByTagNameNS("http://pyxml.sf.net/minidom",
                                           "myelem")
        self.confirm(len(elems) == 1
                and elems[0].namespaceURI == "http://pyxml.sf.net/minidom"
                and elems[0].localName == "myelem"
                and elems[0].prefix == "minidom"
                and elems[0].tagName == "minidom:myelem"
                and elems[0].nodeName == "minidom:myelem")
        dom.unlink()
项目:zippy    作者:securesystemslab    | 项目源码 | 文件源码
def testGetEmptyNodeListFromElementsByTagNameNS(self):
        doc = parseString('<doc/>')
        self.get_empty_nodelist_from_elements_by_tagName_ns_helper(
            doc, 'http://xml.python.org/namespaces/a', 'localname')
        self.get_empty_nodelist_from_elements_by_tagName_ns_helper(
            doc, '*', 'splat')
        self.get_empty_nodelist_from_elements_by_tagName_ns_helper(
            doc, 'http://xml.python.org/namespaces/a', '*')

        doc = parseString('<doc xmlns="http://xml.python.org/splat"><e/></doc>')
        self.get_empty_nodelist_from_elements_by_tagName_ns_helper(
            doc, "http://xml.python.org/splat", "not-there")
        self.get_empty_nodelist_from_elements_by_tagName_ns_helper(
            doc, "*", "not-there")
        self.get_empty_nodelist_from_elements_by_tagName_ns_helper(
            doc, "http://somewhere.else.net/not-there", "e")
项目:zippy    作者:securesystemslab    | 项目源码 | 文件源码
def testCloneDocumentDeep(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(1)
        self.confirm(not (doc.isSameNode(doc2) or doc2.isSameNode(doc)),
                "testCloneDocumentDeep: document objects not distinct")
        self.confirm(len(doc.childNodes) == len(doc2.childNodes),
                "testCloneDocumentDeep: wrong number of Document children")
        self.confirm(doc2.documentElement.nodeType == Node.ELEMENT_NODE,
                "testCloneDocumentDeep: documentElement not an ELEMENT_NODE")
        self.confirm(doc2.documentElement.ownerDocument.isSameNode(doc2),
            "testCloneDocumentDeep: documentElement owner is not new document")
        self.confirm(not doc.documentElement.isSameNode(doc2.documentElement),
                "testCloneDocumentDeep: documentElement should not be shared")
        if doc.doctype is not None:
            # check the doctype iff the original DOM maintained it
            self.confirm(doc2.doctype.nodeType == Node.DOCUMENT_TYPE_NODE,
                    "testCloneDocumentDeep: doctype not a DOCUMENT_TYPE_NODE")
            self.confirm(doc2.doctype.ownerDocument.isSameNode(doc2))
            self.confirm(not doc.doctype.isSameNode(doc2.doctype))
项目:zippy    作者:securesystemslab    | 项目源码 | 文件源码
def testNormalizeCombineAndNextSibling(self):
        doc = parseString("<doc/>")
        root = doc.documentElement
        root.appendChild(doc.createTextNode("first"))
        root.appendChild(doc.createTextNode("second"))
        root.appendChild(doc.createElement("i"))
        self.confirm(len(root.childNodes) == 3
                and root.childNodes.length == 3,
                "testNormalizeCombineAndNextSibling -- preparation")
        doc.normalize()
        self.confirm(len(root.childNodes) == 2
                and root.childNodes.length == 2
                and root.firstChild.data == "firstsecond"
                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
                , "testNormalizeCombinedAndNextSibling -- result")
        doc.unlink()
项目:zippy    作者:securesystemslab    | 项目源码 | 文件源码
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()
项目:zippy    作者:securesystemslab    | 项目源码 | 文件源码
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()
项目:zippy    作者:securesystemslab    | 项目源码 | 文件源码
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()
项目:zippy    作者:securesystemslab    | 项目源码 | 文件源码
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()
项目:Starfish    作者:BillWang139967    | 项目源码 | 文件源码
def partinfo(self, uuid=None, devname=None):
        """Read partition info including uuid and filesystem.

        You can specify uuid or devname to get the identified partition info.
        If no argument provided, all partitions will return.

        We read info from /etc/blkid/blkid.tab instead of call blkid command.
        REF: http://linuxconfig.org/how-to-retrieve-and-change-partitions-universally-unique-identifier-uuid-on-linux
        """
        blks = {}
        p = subprocess.Popen(shlex.split('/sbin/blkid'), stdout=subprocess.PIPE, close_fds=True)
        p.stdout.read()
        p.wait()

        # OpenVZ may not have this file
        if not os.path.exists('/etc/blkid/blkid.tab'): return None

        with open('/etc/blkid/blkid.tab') as f:
            for line in f:
                dom = parseString(line).documentElement
                _fstype = dom.getAttribute('TYPE')
                _uuid = dom.getAttribute('UUID')
                _devname = dom.firstChild.nodeValue.replace('/dev/', '')
                partinfo = {
                    'name': _devname,
                    'fstype': _fstype,
                    'uuid': _uuid,
                }
                if uuid and uuid == _uuid:
                    return partinfo
                elif devname and devname == _devname:
                    return partinfo
                else:
                    blks[_devname] = partinfo
        if uuid or devname:
            return None
        else:
            return blks
项目:core-framework    作者:RedhawkSDR    | 项目源码 | 文件源码
def buildDevSeq(dasXML, fs):
    _xmlFile = fs.open(str(dasXML), True)
    buff = _xmlFile.read(_xmlFile.sizeOf())
    _xmlFile.close()

    das = minidom.parseString(buff)
    ds = []
    deviceAssignmentTypeNodeList = das.getElementsByTagName("deviceassignmenttype")
    for node in deviceAssignmentTypeNodeList:
        componentid = node.getElementsByTagName("componentid")[0].firstChild.data
        assigndeviceid = node.getElementsByTagName("assigndeviceid")[0].firstChild.data
        ds.append( CF.DeviceAssignmentType(str(componentid),str(assigndeviceid)) )
    return ds