Python xslt转换时lxml缺少节点

Python xslt转换时lxml缺少节点,python,xml,python-3.x,xslt,lxml,Python,Xml,Python 3.x,Xslt,Lxml,我有一个XML和XSLT。来自法国的天气数据 XML: XSLT: 我用这个网站进行了测试,它给了我一个两个html元素,link和div 对于lxml,它只提供链接元素: 导入请求 将lxml.etree作为ET导入 xml=ET.fromstringrequests.get'https://donneespubliques.meteofrance.fr/donnees_libres/Pdf/BRA/BRA.CHABLAIS.20190514130953.xml".内容 xslt=ET.fro

我有一个XML和XSLT。来自法国的天气数据

XML: XSLT:

我用这个网站进行了测试,它给了我一个两个html元素,link和div

对于lxml,它只提供链接元素:

导入请求 将lxml.etree作为ET导入 xml=ET.fromstringrequests.get'https://donneespubliques.meteofrance.fr/donnees_libres/Pdf/BRA/BRA.CHABLAIS.20190514130953.xml".内容 xslt=ET.fromstringrequests.get'http://donneespubliques.meteofrance.fr/donnees_libres/Pdf/BRA/bra.xslt".内容 transform=ET.XSLTxslt 生成的html=transformxml printET.tostringgenerated_html,pretty_print=True 输出:

b'<link rel="stylesheet" type="text/css" href="BRA.css"/>\n'
我觉得XSLT可能会生成两个没有根的XML元素,这可能就是为什么lxml只给我一个link元素


如果我使用strgenerated_html或generated_html.write_outputsys.stdout,使用lxml 4.3.3,我会在Python中获得lxml的完整结果片段。尽管后者要工作,xsl:output中声明的编码似乎需要与stdout的编码匹配,但在Windows上它似乎是UTF-8,不确定其他平台

另见警告:

可以使用ElementTree中已知的.write方法 对象将XSLT结果序列化到文件中,最好使用 .write_输出方法。后者知道这个问题 标记并将预期数据写入输出文件

因此,我认为您的假设是,生成的包含多个顶级元素的片段与used-tostring方法不匹配。

如果您使用strgenerated\u html,会发生什么?这是否显示了您期望的所有数据?文档表明还有一个.write_输出,您可以在生成的html上调用它,而通用的ET.tostring方法可能不知道如何处理作为片段的XSLT结果。