Unicode源的XSLT转换
在我的应用程序中,我使用了4Suite.org XSLT库来对源XML进行转换。语法是这样的:
from Ft.Xml.Xslt import Transform
transformed_xml = Transform(raw_xml, stylesheet)
这里的raw_xml
和stylesheet
是在我的应用程序的其他地方定义的。raw_xml
是通过使用codecs模块打开的文件句柄读取的XML,所以raw_xml
将是unicode格式。
问题是,Transform()函数要求源XML的值(在我的例子中是raw_xml
)必须是ascii格式。文档中也提到这一点,如果我尝试转换unicode格式,程序就会报错。
有没有其他的方法,或者有没有其他的Python库可以对unicode源进行XSLT转换?或者,我是不是对XSLT转换有什么误解?
2 个回答
2
你可能更适合使用一个更新、更活跃维护的工具,叫做 lxml。
2
我不太确定Transform
是不是一定需要ascii格式——我觉得它应该支持任何编码的Python字符串。如果你调用Transform(raw_xml.encode('utf8'), stylesheet)
(然后在处理完后把得到的utf8编码的字符串再解码成Unicode,当然如果你需要Unicode的话)——这样做不行吗?