0

私は次の xml を持っています:

<a>
  <aa id = 1>
    <data>aaaa</data>
  </aa>
  <aa id = 2>
    <data>bbbb</data>
  </aa>
  <aa id = 3>
    <data>cccc</data>
  </aa>
</a>

データのテキスト (aaaa、bbbb...) に到達したいのですが、どうすればよいですか? (私は etree.ElementTree パッケージを使用しています)

4

3 に答える 3

1

XML ファイル:

<?xml version="1.0"?>
<a>
  <aa id="1">
    <data>aaaa</data>
   </aa>
   <aa id="2">
    <data>bbbb</data>
  </aa>
  <aa id="3">
    <data>cccc</data>
  </aa>
</a>

XPath次のクエリを使用できます。

from lxml import etree

xml = etree.parse('/tmp/a.xml')

xml.xpath('.//data/text()')
['aaaa', 'bbbb', 'cccc'] #returns that
于 2012-12-17T17:23:03.333 に答える
1

これを試すことができます:

In [1]: import xml.etree.ElementTree as ET

In [2]: tree = ET.parse('test.xml')

In [3]: root = tree.getroot()

In [4]: for el in root:
   ...:     print el.find('data').text
   ...:     
   ...:     
aaaa
bbbb
cccc

あなたが提供したコードに欠けている唯一のものはelem.find('data').text(あなたのループの内側for)です - それはあなたが探している値を返します。

于 2012-12-17T17:34:37.297 に答える
0
tree = xml.parse(file) 
root = tree.getroot() 
listElem = root.findall("aa") 
for elem in listElem:
     tmp1 = elem.findall("data")
     str = tmp1[0].text
于 2012-12-17T17:37:11.750 に答える