from lxml import etree
import os
import copy
import xml.etree.ElementTree as ET
XMLDoc = etree.parse(open('aa.xml'))
XSLDoc = etree.parse(open('aa.xsl'))
try:
transform = etree.XSLT(XSLDoc)
except:
for error in etree.XSLT.error_log:
print(error.message, error.line)
v = '/person/name'
for Node in XMLDoc.xpath(v):
m2 = copy.deepcopy(Node)
m3 = etree.tostring(m2, method="xml", xml_declaration=True, encoding="utf-8", with_tail=False)
m3 = m3.decode("utf-8")
dc = open('pq.xml', 'w')
dc.write(str(m3))
dc.close()
xm = etree.parse(open('pq.xml'))
q = transform(xm)
print(q)
Я использую lxml для преобразования нашего xml в другой xml через xslt, но у меня есть одна ошибка синтаксического анализа в нашем xslt.
Traceback (most recent call last):
File "C:\Anil\PTest\08\qqq.py", line 13, in <module>
for error in etree.XSLT(XSLDoc).error_log:
File "src\lxml\xslt.pxi", line 410, in lxml.etree.XSLT.__init__
lxml.etree.XSLTParseError: Failed to compile predicate
Подскажите, пожалуйста, как найти точную проблему в нашем xslt.