Parser.py 文件源码

python
阅读 20 收藏 0 点赞 0 评论 0

项目:SOAPpy 作者: jfsanchez-gh 项目源码 文件源码
def _parseSOAP(xml_str, rules = None, ignore_ext=None,
               forbid_entities=False, forbid_external=True, forbid_dtd=False):
    inpsrc = xml.sax.xmlreader.InputSource()
    inpsrc.setByteStream(StringIO(xml_str))
    if ignore_ext is None:
        ignore_ext = False

    parser = make_parser()
    t = SOAPParser(rules=rules)
    parser.setContentHandler(t)
    errorHandler = xml.sax.handler.ErrorHandler()
    parser.setErrorHandler(errorHandler)

    if ignore_ext:
        # disable by default  entity loading on posted content
        forbid_dtd = True
        forbid_entities = True
        forbid_external = True
    parser.forbid_dtd = forbid_dtd
    parser.forbid_entities = forbid_entities
    parser.forbid_external = forbid_external
    parser.setEntityResolver(EmptyEntityResolver())

    # turn on namespace mangeling
    parser.setFeature(xml.sax.handler.feature_namespaces, 1)

    try:
        parser.parse(inpsrc)
    except DefusedXmlException, e:
        parser._parser = None
        print traceback.format_exc()
        raise e
    except xml.sax.SAXParseException, e:
        parser._parser = None
        print traceback.format_exc()
        raise e

    return t

################################################################################
# SOAPParser's more public interface
################################################################################
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号