如何使用Python ElementTree为XML添加XSLT文件链接?
解决用Python ElementTree添加XSLT处理指令的问题
嘿,我来帮你搞定这个问题!ElementTree确实没有专门的快捷方法添加XSLT处理指令,但我们可以用它内置的ProcessingInstruction类手动创建并插入到文档的正确位置。
下面是修改后的完整代码,保留了你原来的逻辑,同时添加了需要的XSLT头部:
import xml.etree.ElementTree as ET # 解析原XML文件 tree = ET.parse('myfile.xml') root = tree.getroot() # 你原来的内容修改逻辑 root[0][0].text = "ole" root[0][1].text = "ole" # 创建XSLT处理指令 xslt_pi = ET.ProcessingInstruction( 'xml-stylesheet', 'type="text/xsl" href="myfile.xsl"' ) # 将处理指令插入到根元素的前面(XML声明之后、根标签之前的正确位置) root.addprevious(xslt_pi) # 写入新的XML文件 tree.write('test_file.xml', encoding='utf-8', method="xml")
关键步骤解释:
- 创建处理指令:
ET.ProcessingInstruction接受两个参数,第一个是处理指令的目标名称(这里是xml-stylesheet),第二个是指令的具体属性内容。 - 插入位置:调用
root.addprevious(xslt_pi)会把处理指令放在根元素的前面,这是XSLT处理指令的标准位置,确保XML解析器能正确识别。 - 写入文件:保持你原来的
write参数,encoding='utf-8'会自动生成标准的XML声明,处理指令会紧跟在声明之后。
这样生成的test_file.xml开头就会包含你需要的内容:
<?xml version='1.0' encoding='utf-8'?> <?xml-stylesheet type="text/xsl" href="myfile.xsl"?> <!-- 你的根元素和内容 -->
内容的提问来源于stack exchange,提问作者Francisco Vieira
相关产品推荐
相关产品推荐

