Как найти точную строку ошибки от Python 3.6.5? - PullRequest
0 голосов
/ 01 ноября 2018
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.

1 Ответ

0 голосов
/ 01 ноября 2018

XSLT должен иметь прикрепленный журнал, чтобы вы могли сделать что-то вроде следующего:

try:
    # Your Code
except:
    for error in YourXSLTObject.error_log:
        print(error.message, error.line)
...