Example #1
0
def escapedNode(elt, start, empty, ixEscape, ixResolveUris):
    if elt.namespaceURI in ixbrlAll:
        return ''  # do not yield XML for nested facts
    if ixResolveUris:
        uriAttrs = htmlEltUriAttrs.get(elt.qname.localName, ())
    else:
        uriAttrs = ()
    s = ['<']
    if not start and not empty:
        s.append('/')
    if ixEscape == "html" and elt.qname.namespaceURI == xhtml:
        s.append(elt.qname.localName)  # force xhtml prefix to be default
    else:
        s.append(str(elt.qname))
    if start or empty:
        if elt.localName == "object" and elt.get(
                "codebase"):  # resolve codebase before other element names
            elt.set("codebase", resolveHtmlUri(elt, "codebase"),
                    elt.get("codebase"))
        for n, v in sorted(elt.items(), key=lambda item: item[0]):
            if n in uriAttrs:
                v = resolveHtmlUri(elt, n, v).replace(
                    " ", "%20"
                )  # %20 replacement needed for conformance test passing
            s.append(' {0}="{1}"'.format(
                qname(elt, n),
                v.replace("&", "&amp;").replace('"', '&quot;')))
    if not start and empty:
        s.append('/')
    s.append('>')
    return ''.join(s)
def expectedInstanceLoaded(expectedInstance, outputInstanceToCompare):
    for f in expectedInstance.facts:
        if not f.isNumeric and f.text and "http://www.w3.org/1999/xhtml" in f.text:
            f.text = re.sub(
                "(<[^>]+)\s+xmlns=[\"']http://www.w3.org/1999/xhtml[\"']",
                r"\1", f.text)

    # fixup relative urls in fact footnotes
    for elt in expectedInstance.modelDocument.xmlRootElement.iterdescendants(
            tag="{http://www.w3.org/1999/xhtml}*"):
        for n in htmlEltUriAttrs.get(elt.localName, ()):
            v = elt.get(n)
            if v:
                v = resolveHtmlUri(elt, n, v).replace(" ", "%20")
                elt.set(n, v)
Example #3
0
def escapedNode(elt, start, empty, ixEscape, ixResolveUris):
    if elt.namespaceURI in ixbrlAll:
        return ''  # do not yield XML for nested facts
    if ixResolveUris:
        uriAttrs = htmlEltUriAttrs.get(elt.qname.localName, ())
    else:
        uriAttrs = ()
    s = ['<']
    if not start and not empty:
        s.append('/')
    if ixEscape == "html" and elt.qname.namespaceURI == xhtml:
        s.append(elt.qname.localName) # force xhtml prefix to be default
    else:
        s.append(str(elt.qname))
    if start or empty:
        for n,v in sorted(elt.items(), key=lambda item: item[0]):
            if n in uriAttrs:
                v = resolveHtmlUri(elt, n, v)
            s.append(' {0}="{1}"'.format(qname(elt,n),
                                         v.replace("&","&amp;").replace('"','&quot;')))
    if not start and empty:
        s.append('/')
    s.append('>')
    return ''.join(s)