繁体   English   中英

如何使用 Python ElementTree 包含指向 XSLT 文件的链接?

[英]How can I include a link to XSLT file with Python ElementTree?

我正在努力使用 ElementTree 在我的 XML 中包含我的 XSLT 标头,但我找不到任何有关如何执行此操作的信息。

这是我的 Python 代码:

tree = ET.parse('myfile.xml') #get all tags from this XML document

root = tree.getroot()  #get all elements from each tag

root[0][0].text = "ole"

root[0][1].text = "ole"

tree.write('test_file.xml', encoding='utf-8', method="xml") #write XML file

唯一的问题是包含这个标题:

<\\? xml-stylesheet type="text/xsl" href="myfile.xsl" \\?>

不幸的是xml.etree.ElementTree不支持 XSLT(例如,您可以阅读write()methodxmltexthtml )。

幸运的是,如果您依赖为XSLT添加支持的lxml ,您可以轻松地做到这一点

我刚找到答案!!!

您需要改用 lxml,这是新代码:

from lxml import etree as ET 

parser = ET.XMLParser(strip_cdata=False) #strip = false to prevent cdata to be removed/ stripped 
tree = ET.parse('myfile.xml', parser) 
root = tree.getroot()  #get all elements from each tag

tag1 = root.find('TAG1')
tag1.find('TAG2').text = 'text change here'

tree.write('test_file.xml', encoding='utf-8', method="xml")

您的 XML 模板 (myfile.xml) 是这样的:

<?xml-stylesheet type="text/xsl" href="your_file.xsl" ?>
<FirstTAG>              
        <TAG1>      
             <TAG2>your text</TAG2>
        </TAG1>
</FirstTAG>

新的将是这样的:

<?xml-stylesheet type="text/xsl" href="your_file.xsl" ?>
<FirstTAG>              
        <TAG1>      
             <TAG2>text change here</TAG2>
        </TAG1>
</FirstTAG>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM