在我的应用程序中,我使用4Suite.org XSLT library来执行源XML的转换。语法如下:
from Ft.Xml.Xslt import Transform
transformed_xml = Transform(raw_xml, stylesheet)
其中raw_xml
和stylesheet
已在我的应用程序的其他位置定义。 raw_xml
将是读取使用编解码器模块打开的文件句柄的xml,因此raw_xml
将是unicode。
问题是Transform()函数需要源xml(在我的例子中为raw_xml
)的值为ascii。它在pydoc中这样说,如果我尝试转换unicode,我自己的程序就会失败并出现错误。
是否有不同的方法或是否有另一个python库可以对unicode源执行XSLT转换?或者,我是否误解了有关XSLT转换的内容?
答案 0 :(得分:2)
您最好使用更现代化且更积极的lxml。
答案 1 :(得分:2)
我不确定Transform
实际上需要 ascii - 在我看来它应该支持任何编码的Python str。如果你调用Transform(raw_xml.encode('utf8'), stylesheet)
(然后当你完成处理它时将生成的utf8编码的字符串解码回Unicode,如果你需要Unicode)会发生什么 - 这不起作用吗?