使用Python解析多个XML文件

2024-06-16 10:47:32 发布

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

我在一个文件夹中有多个xml文件。我想解析所有的xml文件。我尝试过minidom解析,但是我做不到。以下是xml文件-

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<?xml-stylesheet type="text/xsl" href="frame.xsl"?>
<frame cBy="KmG" cDate="03/05/2008 03:50:35 PST Wed" name="Abandonment" ID="2031" xsi:schemaLocation="../schema/frame.xsd" xmlns="http://framenet.icsi.berkeley.edu" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <definition>&lt;def-root&gt;An &lt;fex name="Agent"&gt;Agent&lt;/fex&gt; leaves behind a &lt;fex name="Theme"&gt;Theme&lt;/fex&gt; effectively rendering it no longer within their control or of the normal security as one's property. 

&lt;ex&gt;&lt;fex name="Agent"&gt;Carolyn&lt;/fex&gt; &lt;t&gt;abandoned&lt;/t&gt; &lt;fex name="Theme"&gt;her car&lt;/fex&gt; and jumped on a red double decker bus.&lt;/ex&gt;

&lt;ex&gt;Perhaps &lt;fex name="Agent"&gt;he&lt;/fex&gt; &lt;t&gt;left&lt;/t&gt; &lt;fex name="Theme"&gt;the key&lt;/fex&gt; in the ignition&lt;/ex&gt;

&lt;ex&gt;&lt;t&gt;Abandonment&lt;/t&gt; &lt;fex name="Theme"&gt;of a child&lt;/fex&gt; is considered to be a serious crime in many jurisdictions.&lt;/ex&gt; 
</frame>

我试过下面的代码-我只想在前两者之间划一条线

^{pr2}$

错误是-

TypeError: argument of type 'Document' is not iterable

有办法吗?救命啊!在


Tags: 文件ofthenameltgttypexml
2条回答

也可以使用xml.etree公司名称:

from xml.etree import ElementTree for i in root: counter = counter + 1 for child in root[counter]: if child.tag == 'ChildTagName': for subchild in child: if subchild.tag == 'SubchildTagName': my_VariableName = subchild.text

和13;
和13;

我认为在python中解析xml更好的方法是使用xmltoict

你只需要:

import xmltodict

然后:

^{pr2}$

然后您的xml文件被转换成python dict,您可以使用它很容易。进去你可以把所有的案例转换成一个循环。在

相关问题 更多 >