使用ElementTree查找<key> <string>信息</string> </key>

时间:2012-11-19 14:58:05

标签: python xml parsing elementtree

我是ET的新手,但我找不到最简单的方法。我有一个XML文件,其中的关联值不是嵌套的,我需要从每个文件中提取文本,然后将它们推送到我稍后将操作的变量中。问题是知道如何获得每个价值。

示例XML:

<key>Creation Date</key>
    <date>2012-08-18T16:53:23Z</date>
    <key>Entry Text</key>
    <string>This is some entry text</string>
    <key>Location</key>
    <dict>
        <key>Administrative Area</key>
        <string>State</string>
        <key>Country</key>
        <string>United States</string>
        <key>Latitude</key>
        <real>39.647493</real>
        <key>Locality</key>
        <string>City</string>
        <key>Longitude</key>
        <real>-84.11737579840</real>
        <key>Place Name</key>
        <string>123 street</string>
        <key>State</key>
        <string>auto</string>
    </dict>
    <key>Starred</key>
    <false/>
    <key>UUID</key>
    <string>0B38EF885FB84F647GHT738</string>

正如您所看到的,标签并非真正以智能方式关联。例如,我将如何获得:

EntryText = [The <String> Text after <key> Entry Text]

所以EntryText会=这是一些条目文本

country = [<key>Location <dict> <key> Country <string>]

所以country = United States

感谢您的时间。

1 个答案:

答案 0 :(得分:1)

您正在尝试解析OS X .plist XML data structure。 Python已经附带了一个可以为您解析的模块; plistlib。请改用:

import plistlib

result = plistlib.readPlist(filename)
print result['Entry Text']