Python中使用XSLT转换XML时报错name 'testing'未定义如何解决
问题修复方案
你遇到的报错是Python语法错误,直接原因是传入ET.parse()的文件名没有加引号:Python会把未加引号的testing.xml识别为「获取testing变量的xml属性」,而你没有定义过名为testing的变量,因此抛出name "testing" is not defined的错误。
修正后的Python代码
将两个文件名用引号包裹为字符串类型即可,参考代码如下:
import lxml.etree as ET dom = ET.parse('testing.xml') xslt = ET.parse('testing.xsl') transform = ET.XSLT(xslt) newdom = transform(dom) # 因XSL指定输出为文本格式,可直接转字符串输出 print(str(newdom))
其他注意事项
- 如果运行时提示文件不存在,可将文件名替换为文件的绝对路径,或者确认Python运行时的工作目录和
testing.xml、testing.xsl的存放目录一致。 - 你当前的XML中定义了两个
<Title>节点,现有XSL只会匹配返回第一个节点的值Snacks,如果需要同时输出两个分类的内容,可以调整XSL的匹配规则遍历所有<Title>节点即可。
内容的提问来源于stack exchange,提问作者TAI YU ZHE
相关产品推荐
相关产品推荐

