0

ソフトウェアから生成された xml ファイルを読み取る Python スクリプトを作成しました。xml.etree.cElementTree を使用して xml を解析しました。正常に動作していましたが、今日突然スクリプトが動作していないことに気付きました。システムに変更があったとは思いません。解析するファイルの新しいバッチを取得しただけです。

cpython/lib/xml/etree ライブラリをプロジェクト ディレクトリに追加しようとしましたが、何も解決しません。以前は独立して実行していたので、ここで問題を指摘することはできません。私は以下のコードを提供しています:

#!/usr/bin/env python3

import xml.etree.cElementTree as ET
import os

scriptPath = os.path.dirname(os.path.abspath(__file__))

xmlTree = ET.parse(scriptPath + '/../report/Non-text-searchable.xml')
rootTag = xmlTree.getroot()

rules = {}
rulesTag = rootTag.find('profile_info').find('rules')
for ruleTag in rulesTag.iter('rule'):
    ruleId = ruleTag.get('id')
    ruleDisplayCommentTag = ruleTag.find('display_comment')
    ruleDisplayComment = ruleDisplayCommentTag.text
    rules[ruleId] = ruleDisplayComment

以前は、ID をキー、コメントを値として適切にフォーマットされた連想配列を受け取っていました。しかし、今では次のエラーが発生します。

Traceback (most recent call last):
  File "scripts/parseXML.py", line 12, in <module>
    rulesTag = rootTag.find('profile_info').find('rules')
AttributeError: 'NoneType' object has no attribute 'find'

ここに私がチェックしているファイルがあります:

<?xml version="1.0" encoding="UTF-8" ?>
<report xsi:schemaLocation="http://www.callassoftware.com/namespace/pi4 pi4_results_schema.xsd" xmlns="http://www.callassoftware.com/namespace/pi4" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <document>
        <doc_info>
            <filename>Non-text-searchable.pdf</filename>
            <path>/home/debopam/Downloads/pdfToolBoxCLI/samples/</path>
            <pdfversion>1.4</pdfversion>
            <filesize_byte>70489</filesize_byte>
            <title>Untitled</title>
            <author>Dell</author>
            <creator>PScript5.dll Version 5.2.2</creator>
            <producer>GPL Ghostscript 8.15</producer>
            <created>08.10.2013 13:21</created>
            <created_timezone>2013-10-08T13:21:40</created_timezone>
            <modified>08.10.2013 13:21</modified>
            <modified_timezone>2013-10-08T13:21:40</modified_timezone>
            <keywords></keywords>
            <subject></subject>
            <trapped>Unknown</trapped>
            <plates>4</plates>
            <platenames>
                <platename>Cyan</platename>
                <platename>Magenta</platename>
                <platename>Yellow</platename>
                <platename>Black</platename>
            </platenames>
            <catalog_info>
                <version_entry></version_entry>
            </catalog_info>
        </doc_info>
        <pages>
        </pages>
        <resources>
        </resources>
    </document>
    <profile_info creator_id="Pb484eb8c0ff7c39aa54c4359af092373">
        <profile_name>TestChecksColorResFont</profile_name>
        <profile_comment></profile_comment>
        <meta_data>
        </meta_data>
        <conditions>
            <condition id="CND1" creator_id="Cedb27d6db073644e1a44173737e1acab" property_key="CSCOLOR::isDeviceRGB">
                <display_name></display_name>
                <display_comment></display_comment>
                <rules>
                    <rule id="RUL2">
                    </rule>
                </rules>
            </condition>
            <condition id="CND2" creator_id="Ca7fafdf48cebe54ed7ab5687c7988cac" property_key="CSIMAGE::BitsPerColourComponent">
                <display_name></display_name>
                <display_comment></display_comment>
                <rules>
                    <rule id="RUL1">
                    </rule>
                </rules>
            </condition>
            <condition id="CND3" creator_id="C1b82e4dcd74de31c222ca3ae9adbb7c2" property_key="CSIMAGE::Resolution">
                <display_name></display_name>
                <display_comment></display_comment>
                <rules>
                    <rule id="RUL1">
                    </rule>
                </rules>
            </condition>
            <condition id="CND4" creator_id="Ca463e359e2e0388210b50fc64e0b1dc7" property_key="CSIMAGE::BitsPerColourComponent">
                <display_name></display_name>
                <display_comment></display_comment>
                <rules>
                    <rule id="RUL3">
                    </rule>
                </rules>
            </condition>
            <condition id="CND5" creator_id="C91457a5352d354fb9f52f49e7d310845" property_key="CSIMAGE::Resolution">
                <display_name></display_name>
                <display_comment></display_comment>
                <rules>
                    <rule id="RUL3">
                    </rule>
                </rules>
            </condition>
            <condition id="CND6" creator_id="C0f6ff9d5de51924064d5e63877f70289" property_key="CSFONT::isEmbedded">
                <display_name></display_name>
                <display_comment></display_comment>
                <rules>
                    <rule id="RUL4">
                    </rule>
                </rules>
            </condition>
        </conditions>
        <rules>
            <rule id="RUL1" creator_id="Rd69191a9b161310be770bda424c2eb86" dict_key="PRCWzImag_ResImgLower">
                <display_name>Resolution of color and grayscale images is lower than 300 pixels per inch</display_name>
                <display_comment>Continuous tone image resolution lower than specified</display_comment>
                <display_nomatch></display_nomatch>
                <conditions>
                    <condition id="CND2">
                    </condition>
                    <condition id="CND3">
                    </condition>
                </conditions>
                <rulesets>
                    <ruleset ruleset_id="RS2">
                        <severity>Error</severity>
                    </ruleset>
                </rulesets>
            </rule>
            <rule id="RUL2" creator_id="R283b33331e53df09691597fbd56cd772" dict_key="PRCWzColr_RGB">
                <display_name>Object uses RGB</display_name>
                <display_comment>Object uses RGB (DeviceRGB).</display_comment>
                <display_nomatch></display_nomatch>
                <conditions>
                    <condition id="CND1">
                    </condition>
                </conditions>
                <rulesets>
                    <ruleset ruleset_id="RS1">
                        <severity>Error</severity>
                    </ruleset>
                </rulesets>
            </rule>
            <rule id="RUL3" creator_id="R1331df8c5867727243d9fd6ea8d6dda6" dict_key="PRCWzImag_ResBmpLower">
                <display_name>Resolution of bitmap images is lower than 300 pixels per inch</display_name>
                <display_comment>Bitmap resolution lower than specified</display_comment>
                <display_nomatch></display_nomatch>
                <conditions>
                    <condition id="CND4">
                    </condition>
                    <condition id="CND5">
                    </condition>
                </conditions>
                <rulesets>
                    <ruleset ruleset_id="RS3">
                        <severity>Error</severity>
                    </ruleset>
                </rulesets>
            </rule>
            <rule id="RUL4" creator_id="R04dd9c495da7506fdb7f46ecca066d81" dict_key="PRCWzXComp_PDFDocument_R_FontNotEmbedded">
                <display_name>Font not embedded</display_name>
                <display_comment>PDF/X requires that all fonts are embedded.</display_comment>
                <display_nomatch></display_nomatch>
                <conditions>
                    <condition id="CND6">
                    </condition>
                </conditions>
                <rulesets>
                    <ruleset ruleset_id="RS4">
                        <severity>Error</severity>
                    </ruleset>
                </rulesets>
            </rule>
        </rules>
        <rulesets>
            <ruleset id="RS1" creator_id="Sfdc5b80dba07ef2ecab005fcb1cae4cf" dict_key="PRCWzColr_RGB">
                <display_name>Object uses RGB</display_name>
                <display_comment>Object uses RGB (DeviceRGB).</display_comment>
                <rules>
                    <rule rule_id="RUL2"></rule>
                </rules>
            </ruleset>
            <ruleset id="RS2" creator_id="Sbd92dd53d1720e63b74d679a9a18fb4a" dict_key="PRCWzImag_ResImgLower">
                <display_name>Resolution of color and grayscale images is lower than 300 pixels per inch</display_name>
                <display_comment>Continuous tone image resolution lower than specified</display_comment>
                <rules>
                    <rule rule_id="RUL1"></rule>
                </rules>
            </ruleset>
            <ruleset id="RS3" creator_id="Sabac7ce3a018637df157249daadec742" dict_key="PRCWzImag_ResBmpLower">
                <display_name>Resolution of bitmap images is lower than 300 pixels per inch</display_name>
                <display_comment>Bitmap resolution lower than specified</display_comment>
                <rules>
                    <rule rule_id="RUL3"></rule>
                </rules>
            </ruleset>
            <ruleset id="RS4" creator_id="S935eda6d17880d284838826a0447a757" dict_key="PRCWzFont_NotEmbedded">
                <display_name>Font is not embedded</display_name>
                <display_comment>Fonts should always be embedded for prepress files. Fonts must be embedded for PDF/X-1 and PDF/X-3 files.</display_comment>
                <rules>
                    <rule rule_id="RUL4"></rule>
                </rules>
            </ruleset>
        </rulesets>
    </profile_info>
    <results>
        <hits rule_id="RUL2" severity="Error">
            <hit type="Image" llx="35.94" lly="55.74" urx="576.0598" ury="756.0">
                <imagestate v_ppi="339.303" h_ppi="339.924"></imagestate>
                <gstate miter_limit="10.0" stroke_adjustment="0" flatness_tolerance="1.0" smoothness_tolerance="0.0" overprint_mode="1" overprint_for_stroke="0" overprint_for_fill="0"></gstate>
                <triggers>
                    <trigger condition_id="CND1">is true</trigger>
                </triggers>
            </hit>
        </hits>
    </results>
    <information>
        <product_name>pdfToolbox</product_name>
        <product_version>10.1 (490) x64</product_version>
        <date_time>2019-02-12T16:43:10+05:30</date_time>
        <username>debopam</username>
        <computername>debopam-H81H3-M4</computername>
        <operating_system>Ubuntu 16.04.4 LTS Linux x86_64 4.15.0-45-generic</operating_system>
        <duration>00:00:01</duration>
        <report_language>en</report_language>
    </information>
</report>

問題とその解決方法を理解するのを手伝ってください..よろしくお願いします

PS:

rootTag.find('profile_info')返品None..

も使用してみrootTag.findall('profile_info')ましたが、空の配列が返されます[]..

と も使用してみrootTag.find('{*}profile_info')ましrootTag.findall('{*}profile_info')たが、同じ結果が返されます。

4

2 に答える 2