【问题标题】:How to print CData content while parsing xml local file with python?如何在使用 python 解析 xml 本地文件时打印 CData 内容?
【发布时间】:2021-01-26 02:38:30
【问题描述】:

所以我有一个本地文件夹中的 XML 文件,我想使用 Python 抓取它。它有 CData,看起来像这样:

<?xml version="1.0" encoding="utf-8"?>
   <trial xmlns="urn::trial">
      <drksId><![CDATA[DRKS00000024]]></drksId>
      <firstDrksPublishDate><![CDATA[2008-09-05T12:36:54.000+02:00]]></firstDrksPublishDate>
      <firstPartnerPublishDate><![CDATA[2004-01-15T00:00:00.000+01:00]]></firstPartnerPublishDate>
      ......

我试过了:

import xml.etree.ElementTree as Et
tree=Et.parse(filename)
root=tree.getroot()
print(root.find('drksId').text)

输出: 我将 root.find('drksId') 设置为无。提前致谢

【问题讨论】:

    标签: python xml elementtree cdata


    【解决方案1】:

    尝试考虑命名空间来搜索元素:

    ns = {'ns': 'urn::trial'}
    drksId = root.find('./ns:drksId', ns)
    print(drksId.text)
    

    【讨论】:

    • 嘿,这适用于这个特定的标签。其他具有像 ...... 这样的层次结构。此方法不适用于此类内容
    • 由于命名空间是在根元素上声明的,它也应该应用于所有子元素。在您的示例中,它将是 ns:trial/ns:status/ns:state。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-03-28
    • 2013-01-16
    • 2019-12-15
    • 2018-12-30
    • 1970-01-01
    • 2015-09-08
    • 2013-12-13
    相关资源
    最近更新 更多