我是XSLT的新手,目前我只是尝试使用lxml(Python 3.6)进行一些基本的XSLT操作。 我想将一个XML文件转换为另一个XML文件。
这是我的Python代码:
def generate_xml_source():
xslt = ET.parse(base_dir + '/xml/LSexamples.xsl')
global_xml = ET.parse(base_dir + '/xml/ls_ex.xml')
transform = ET.XSLT(xslt)
new_xml = transform(global_xml)
new_xml.write_output("new_xml.xml")
generate_xml_source()
这是我的初始xml文件ls_ex.xml
:
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="LSexamples.xsl"?>
<TEI xmlns="http://www.tei-c.org/ns/1.0">
<text>
<body>
<cit type="example" ana="#Frt" xml:id="lsex1202">
Quote 1
</cit>
<cit type="example" ana="#Frt" xml:id="lsex279">
Quote 2
</cit>
</body>
</text>
</TEI>
最后,这是我的XSL文件:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" encoding="UTF-8" indent="yes"/>
<xsl:template match="/">
<tei>
<xsl:for-each select="/TEI/text/body/cit">
<p>Bonjour</p>
</xsl:for-each>
</tei>
</xsl:template>
</xsl:stylesheet>
我的程序运行没有任何错误,但是转换后的xml看起来像这样:
<?xml version="1.0" encoding="UTF-8"?>
<tei/>
似乎在xsl:for-each
标记中找不到任何元素。
那么,这是什么问题呢?我的Xpath错误吗?
我意识到这是一个非常简单的示例,但是我找不到这种解决方案,我已经搜索了一段时间。
谢谢!