如何在XML文件中插入处理指令?

发布时间:2022-09-19 / 作者:清心寡欲
本文介绍了如何在XML文件中插入处理指令?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我要使用ElementTree(Python3.8)在我的XML文件中的根元素之前添加xml-stylesheet处理指令。

您可以在下面找到我用来创建XML文件的代码

import xml.etree.cElementTree as ET

def Export_star_xml( self ):
        star_element = ET.Element("STAR",**{ 'xmlns:xsi': 'http://www.w3.org/2001/XMLSchema-instance' })
        element_node = ET.SubElement(star_element ,"STAR_1")
        element_node.text = "Mario adam"
        tree.write( "star.xml" ,encoding="utf-8", xml_declaration=True )

输出:

version="1.0" encoding="windows-1252"?>

       Mario adam 
    

预期产量:




       Mario adam 

推荐答案

我想不出如何使用ElementTree执行此操作。下面是一个使用lxml的解决方案,它为元素提供了一个addprevious()方法。

from lxml import etree as ET

# Note the use of nsmap. The syntax used in the question is not accepted by lxml
star_element = ET.Element("STAR", nsmap={'xsi': 'http://www.w3.org/2001/XMLSchema-instance'})
element_node = ET.SubElement(star_element ,"STAR_1")
element_node.text = "Mario adam"

# Create PI and and insert it before the root element
pi = ET.ProcessingInstruction("xml-stylesheet", text='type="text/xsl" href="ResourceFiles/form_star.xsl"')
star_element.addprevious(pi)

ET.ElementTree(star_element).write("star.xml", encoding="utf-8",
                                   xml_declaration=True, pretty_print=True)

结果:




  Mario adam

这篇关于如何在XML文件中插入处理指令?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持吉威生活!



[英文标题]How to insert a processing instruction in XML file?


声明:本媒体部分图片、文章来源于网络,版权归原作者所有,如有侵权,请联系QQ:330946442删除。