获取XML子项名称,其子项使用LXML仅返回None

时间:2015-04-06 19:53:46

标签: python xml xml-parsing lxml

我尝试使用格式

中的LXML来解析某些XML
<?xml version="1.0" encoding="utf-8"?>
<ttFont sfntVersion="OTTO" ttLibVersion="2.5">

  <cmap>
    <tableVersion version="0"/>
    <cmap_format_4 platformID="0" platEncID="3" language="0">
      <map code="0x0" name=".null"/><!-- ???? -->
      <map code="0xd" name="CR"/><!-- ???? -->

基于教程here,但出于某种原因,简单的命令

xmlFileName = "xml/myfile.ttx"
f = open(xmlFileName, "r")
s = f.read()

doc = etree.XML(s.strip())
map = doc.findtext('map')
print map

仅返回None。如何获取所有cmap个孩子(例如cmap_format_4)和所有地图孩子的节点名称?

1 个答案:

答案 0 :(得分:0)

使用findall()获取map节点的所有cmap_format_4个孩子。例如:

for cmap_format in doc.findall('.//cmap_format_4'):
    for m in cmap_format.findall('map'):
        print m.attrib['code']

打印:

0x0
0xd