如何使用 and 运算符“|” 计算 2 个节点集?换句话说,计算 2 个具有不同标签名称的兄弟姐妹的数据。在这种情况下:我想要来自 edition 和 edition2 标签的数据。我试过'| 它没有用。
XML:
<?xml version="1.0" encoding="utf-8"?>
<wikimedia>
<projects>
<project name="Wikipedia" launch="2001-01-05">
<editions>
<edition language="English">en.wikipedia.org</edition>
<edition language="German">de.wikipedia.org</edition>
<edition language="French">fr.wikipedia.org</edition>
<edition language="Polish">pl.wikipedia.org</edition>
<edition language="Spanish">es.wikipedia.org</edition>
<edition2 language="Spanglish">egs.wikipedia.org</edition2>
<img src="hello.gif">hello</img>
</editions>
</project>
<project name="Wiktionary" launch="2002-12-12">
<editions>
<edition language="English">en.wiktionary.org</edition>
<edition language="French">fr.wiktionary.org</edition>
<edition language="Vietnamese">vi.wiktionary.org</edition>
<edition language="Turkish">tr.wiktionary.org</edition>
<edition language="Spanish">es.wiktionary.org</edition>
<edition2 language="Spanglish">egs.wiktionary.org</edition2>
<img src="hello.gif">hello</img>
</editions>
</project>
</projects>
</wikimedia>
Python :
>>> wikixml.xpath('//edition/text() | edition2/text()')
['en.wikipedia.org', 'de.wikipedia.org', 'fr.wikipedia.org', 'pl.wikipedia.org', 'es.wikipedia.org', 'en.wiktionary.org', 'fr.wiktionary.org', 'vi.wiktionary.org', 'tr.wiktionary.org', 'es.wiktionary.org']
编辑
我得到它的答案后工作,但我也想选择img/@src
我设法做到这一点使用联合运算符的值|
>>> wikixml.xpath('//edition/text() | //edition2/text() | //img/@src')
['en.wikipedia.org', 'de.wikipedia.org', 'fr.wikipedia.org', 'pl.wikipedia.org', 'es.wikipedia.org', 'egs.wikipedia.org', 'hello.gif', 'en.wiktionary.org', 'fr.wiktionary.org', 'vi.wiktionary.org', 'tr.wiktionary.org', 'es.wiktionary.org', 'egs.wiktionary.org', 'hello.gif']
如何使用单个谓词和self
此处使用两个元素完成的符号来执行此操作
/wikimedia/projects/project/editions/ *[self::edition or self::edition2]/text()
现在我们有了@src
and text()
?