Python解析包含多个xml部分的文件

2024-09-29 22:32:22 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试处理具有以下结构的文件:

    <?xml version="1.0" encoding="ISO-8859-1" ?>
    <!DOCTYPE doc SYSTEM "djnml-1.0b.dtd">
    <doc msize="000007622" md5="235d6d9aa0071dd0bd711e812ff918fc" sysId="sbknwsarchp01" destination="AW" distId="    " transmission-date="                " >
    <djnml publisher="DJN" docdate="20160301" product="DN" seq="4" xml:lang="en-us" >
    <head>
    <copyright year="2016" holder="text" ></copyright>
    <docdata>
    <djn>
    <djn-newswires news-source="DJDN" origin="DJ" service-id="CO" >
    <djn-press-cutout/>
    <djn-urgency>0</djn-urgency>
    <djn-mdata brand="DJ" temp-perm="P" retention="N" hot="N" original-source="DJCS" accession-number="20160301000004" page-citation="" display-date="20160301T050006.315Z" >
    <djn-coding>
    <djn-government>
    <c>G/AGD</c>
    <c>G/USG</c>
    </djn-government>
    <djn-page>
    <c>70180</c>
    <c>83567</c>
    </djn-page>
    <djn-subject>
    <c>N/DJAG</c>
    <c>N/DJCS</c>
    </djn-subject>
    <djn-market>
    <c>M/MMR</c>
    </djn-market>
    <djn-product>
    <c>P/ACMD</c>
    <c>P/FNVW</c>
    </djn-product>
    <djn-geo>
    <c>R/NME</c>
    <c>R/TN</c>
    </djn-geo>
    </djn-coding>
    </djn-mdata>
    </djn-newswires>
    </djn>
    </docdata>
    </head>
    <body>
    <headline brand-display="DJ" >
    text</headline>
    <text>
    <pre>
    text
     </pre>
    <p>
      text</p>
    <p>
      text</p>
    </text>
    </body>
    </djnml>
    </doc>
<?xml version="1.0" encoding="iso-8859-1" ?>
<!DOCTYPE doc SYSTEM "djnml-1.0b.dtd">
<doc msize="000002698" md5="81b0dd0339b8c77febf46ebdaf8ef617" sysId="sbknwsarchp01" destination="AW" distId="    " transmission-date="                " >
<djnml publisher="DJN" docdate="20160301" product="DN" seq="70" xml:lang="en-us" >
<head>
<copyright year="2016" holder="text" ></copyright>
<docdata>
<djn>
<djn-newswires news-source="DJDN" origin="DJ" service-id="CO" >
<djn-press-cutout/>
<djn-urgency>0</djn-urgency>
<djn-mdata brand="DJ" temp-perm="P" retention="N" hot="N" original-source="FW" accession-number="20160301000070" page-citation="" display-date="20160301T052632.174Z" >
<djn-coding>
<djn-company>
<c>ANZ.AU</c>
<c>ANZ.NZ</c>
<c>ANZBY</c>
</djn-company>
<djn-isin>
<c>AU000000ANZ3</c>
<c>US0525283042</c>
</djn-isin>
<djn-industry>
<c>I/BAN</c>
<c>I/BKS</c>
</djn-industry>
<djn-page>
<c>22767</c>
<c>5014</c>
<c>55115</c>
</djn-page>
<djn-subject>
<c>N/AER</c>
<c>N/BKG</c>
</djn-subject>
<djn-market>
<c>M/FCL</c>
<c>M/NND</c>
</djn-market>
<djn-product>
<c>P/ABO</c>
<c>P/AEI</c>
</djn-product>
<djn-geo>
<c>R/ASA</c>
<c>R/FE</c>
</djn-geo>
</djn-coding>
</djn-mdata>
</djn-newswires>
</djn>
</docdata>
</head>
<body>
<headline brand-display="DJ" >
text</headline>
<text>
<pre>
 </pre>
<p>
     text </p>
<pre>

Editor JSM 

 </pre>
<p>
  text</p>
<p>
  text</p>
</text>
</body>
</djnml>
</doc>

也就是说,文件包含许多更小的“xml”部分。在

我正在尝试以下代码:

^{pr2}$

这就产生了一个错误

  File "<string>", line unknown
ParseError: junk after document element: line 195, column 0

你知道我怎样才能消除这个错误吗?我的XML文件似乎有多个根,有没有一种方法可以将所有内容都围绕在一个根上,还是另一种方法来处理这个问题?谢谢您。在


Tags: textsourcedatedocpagedjxmlproduct
1条回答
网友
1楼 · 发布于 2024-09-29 22:32:22

XML etree只需要一个根节点。如果你看不出它是一个很差的根,你会发现它是一个错误。您需要编辑XML文件,以便您尝试检索的所有元素都位于一个根节点下,或者您必须将每个根节点分解为多个文件并分别解析它们(这不是最有效的方法,但这取决于名称空间和xsd是相同还是不同)。在

相关问题 更多 >

    热门问题