以下是我正在使用的XML备份的结构。我已经写了一些代码来获取XML中的所有URL - 对于每个URL,我可以通过这种方式遍历XML并查找它出现的页面ID(下面的XML结构中的第二个标记) ?
<page>
<id></id>
<name></name>
<description><a href="http://google.com" target="_self">LINK</a></description>
<boxes>
<box>
</box>
</boxes>
</page>
更新
<page>
<id></id>
<name></name>
<description></description>
<url></url>
<boxes>
<box>
<id></id>
<name></name>
<type></type>
<column></column>
<position></position>
<hidden></hidden>
<created></created>
<updated></updated>
<assets>
<asset>
<id></id>
<name></name>
<type></type>
<description></description>
<url/>
<owner>
<id></id>
<email></email>
<first_name></first_name>
<last_name></last_name>
</owner>
<map_id></map_id>
<position></position>
<created></created>
<updated></updated>
</asset>
</assets>
</box>
</boxes>
</page>
答案 0 :(得分:1)
我通过复制你在问题中提供的内容并输入一些ID来编写一个xml文件。
<pages>
<page>
<id>1</id>
<name></name>
<description><a href="http://google.com" target="_self">LINK</a></description>
<boxes>
<box>
</box>
</boxes>
</page>
<page>
<id>2</id>
<name></name>
<description><a href="http://google.com" target="_self">LINK</a></description>
<boxes>
<box>
</box>
</boxes>
</page><page>
<id>3</id>
<name></name>
<description><a href="http://google.com" target="_self">LINK</a></description>
<boxes>
<box>
</box>
</boxes>
</page>
</pages>
此代码揭示了ID和描述。
>>> from lxml import etree
>>> tree = etree.parse('temp.xml')
>>> for page in tree.xpath('.//page'):
... page.xpath('id')[0].text, page.xpath('description')[0].text
...
('1', '<a href="http://google.com" target="_self">LINK</a>')
('2', '<a href="http://google.com" target="_self">LINK</a>')
('3', '<a href="http://google.com" target="_self">LINK</a>')