我正在研究XML解析,并且一直在使用minidom进行我的工作。文件中使用了许多自定义的实体,因此使用lxml一直是一个难题。DOM似乎忽略了这一点,因此对于我目前的工作,我使用DOM。你知道吗
我需要从xml中获取所有<para>
标记以及标记内的所有内部文本。然后,我需要删除第一次出现和最后一次出现的标记,并获取其余标记中的所有文本及其内部文本。以下是我目前的代码:
file='C:/My_Folders/something.xml'
doc=parse(file)
paras=doc.getElementsByTagName('para')
def getText(paras):
rc = []
for node in paras:
if node.nodeType == node.TEXT_NODE:
rc.append(node.data)
else:
rc.append(getText(node.childNodes))
return ','.join(rc)
print(getText(paras))
在这段代码中,我从所有<para>
标记获取所有文本,这是我不想要的。我不想要第一次和最后一次出现的<para>
标记。有人能帮我吗?你知道吗
下面是示例XML。你知道吗
<para
><reviewer-note >tlewis</reviewer-note
></para>
<para><user-typing>Resilient.</para>
<para>hashing.</para>
<para>"X" release.</para>
<para>[See <url
href="http://www.google.com"
>Trunk/ECMP Groups</url>.]</para>
我不想要第一个标签文本。i、 还有最后一个标签文本。i、 e.中继/ECMP组。我想要其他的<para>
标签文本,比如Resilient、hashing和“X”release并连接这3个。你知道吗
所需输出: 弹性,散列,“X”释放
可以使用BeautifulSoup解析XML。在我的示例中,我使用
select()
方法选择了所有<para>
标记,然后将它们连接在一起(没有第一个和最后一个):输出:
相关问题 更多 >
编程相关推荐