lxml:如何将(python)tuple/list传递给电子邮箱.XSLT()对象从xslt动态生成xml?

2024-05-03 16:49:27 发布

您现在位置:Python中文网/ 问答频道 /正文

lxml的文档讨论了xslt的passing参数。这里是:http://lxml.de/xpathxslt.html#stylesheet-parameters,但是如何将sequence/tuple/list传递给同一个transform方法,以便xslt捕获它并使用xsl:for-each呈现它(成xml)

如果我这样通过:

transform = etree.XSLT(xslt_content)
transform(input_xml_content,
          **{'items':('item1', 'item2')})

我得到的只是:

^{pr2}$

Tags: 文档http参数htmltransformdexmlcontent
2条回答

可能有点晚了,但我正在为同样的问题寻找答案,但没有找到答案。我想到的是将xslt作为xml加载并在使用transform应用之前对其进行修改

def apply_xslt(xml_file, xslt_file_path, xslt_params):
    try:
        xslt = etree.parse(xslt_file_path)

        for key, value in xslt_params.iteritems():
            xslt.find("//{http://www.w3.org/1999/XSL/Transform}param[@name='" + key + "']").attrib['select'] = value

        transform = etree.XSLT(xslt)

        newdom = transform(xml_file)
        return newdom
    except Exception as e:
        raise e

你的推荐信把一切都解释得很简单。参数传递的语法如下。。。在

>>> result = transform(doc_root, a="'A'")
>>> str(result)
'<?xml version="1.0"?>\n<foo>A</foo>\n'

你所要做的就是把你的数据序列化成一个字符串。在

相关问题 更多 >