I built a scaffold library for sqlalchemy using lxml and formal chemistry, and itβs not easy for me to make them play well. in particular, formalchemy.FieldSet.render() returns an html fragment without a root tag, and I cannot figure out how to get lxml to parse it into something that can be included in the element tree:
what i get:
>>> lxml.etree.fromstring(formalchemy.FieldSet(toyschema.User(), session).render()) Traceback (most recent call last): File "<stdin>", line 1, in <module> File "lxml.etree.pyx", line 2743, in lxml.etree.fromstring (src/lxml/lxml.etree.c:52665) File "parser.pxi", line 1573, in lxml.etree._parseMemoryDocument (src/lxml/lxml.etree.c:79932) File "parser.pxi", line 1445, in lxml.etree._parseDoc (src/lxml/lxml.etree.c:78709) File "parser.pxi", line 920, in lxml.etree._BaseParser._parseUnicodeDoc (src/lxml/lxml.etree.c:75083) File "parser.pxi", line 564, in lxml.etree._ParserContext._handleParseResultDoc (src/lxml/lxml.etree.c:71739) File "parser.pxi", line 645, in lxml.etree._handleParseResult (src/lxml/lxml.etree.c:72614) File "parser.pxi", line 585, in lxml.etree._raiseParseError (src/lxml/lxml.etree.c:71955) lxml.etree.XMLSyntaxError: Extra content at the end of the document, line 8, column 1
what I want:
>>> ?????(formalchemy.FieldSet(toyschema.User(), session).render()) [<Element div at 0x1e48e10>, <Element script at 0x1e48cd0>, <Element div at 0x1e48730>, <Element div at 0x1ea1e60>]
My rough work:
>>> lxml.etree.fromstring('<root>%s</root>' % formalchemy.FieldSet(toyschema.User(), session).render()).getchildren() [<Element div at 0x1e48e10>, <Element script at 0x1e48cd0>, <Element div at 0x1e48730>, <Element div at 0x1ea1e60>]