Python saxonche中executable.transform_to_value返回None的问题排查
问题解决:saxonche中transform_to_value返回None的原因及修复
问题原因
你误用了方法:transform_to_value 设计用于获取XSLT返回的单一原子值(如字符串、数字等),而你的XSLT生成了完整的节点树结构,因此该方法无法识别并返回None。而transform_to_string是直接将转换后的节点树序列化为字符串,所以能正常工作。
修复方案
要获取转换后的PyXdmNode节点,应使用**transform_to_node**方法替换transform_to_value。
修改后的代码片段
# 替换原来的transform_to_value result_xdm = executable.transform_to_node(xdm_node=input_xdm) print(type(result_xdm)) print(result_xdm) # 可选:将节点序列化为字符串验证结果 print(result_xdm.serialize())
预期输出
修改后,result_xdm的类型会是<class 'saxonche.PyXdmNode'>,调用serialize()方法会输出和transform_to_string一致的XML字符串。
补充说明
如果确实需要使用transform_to_value,可以修改XSLT让其返回单一值(比如直接返回节点的文本),但这不符合你当前生成完整节点树的需求,因此使用transform_to_node是最直接的解决方案。
内容的提问来源于stack exchange,提问作者Rob Ser
相关产品推荐
相关产品推荐

