2

lxml のドキュメントpassingでは、xslt のパラメーターについて説明しています。ここにあります:http://lxml.de/xpathxslt.html#stylesheet-parametersしかし、私のxsltがそれをキャッチして(xmlに)レンダリングするようsequence/tuple/listに、同じメソッドにaを渡すにはどうすればよいですかtransformxsl:for-each

次のように渡すと:

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

私が得るのは次のとおりです。

  File "xslt.pxi", line 519, in lxml.etree.XSLT.__call__ (src/lxml/lxml.etree.c:119769)
  File "xslt.pxi", line 642, in lxml.etree._convert_xslt_parameters (src/lxml/lxml.etree.c:120985)
  File "xslt.pxi", line 634, in lxml.etree._convert_xslt_parameters (src/lxml/lxml.etree.c:120882)
  File "apihelpers.pxi", line 1364, in lxml.etree._utf8 (src/lxml/lxml.etree.c:22190)
TypeError: Argument must be bytes or unicode, got 'tuple'
4

2 に答える 2

0

あなたの参考文献はすべてを非常に簡単に説明しています。パラメータ受け渡しの構文は次のようになります...

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

データを文字列にシリアライズするだけです。

于 2012-10-18T04:48:01.713 に答える