xpathで奇数ノードを取得する方法は?
position()関数とmod演算子を使用して、ノードの位置が奇数かどうかを判断することで、奇数ノードを取得することができます。
以下は、奇数の位置にあるノードを取得するためのXPath式の例です。
//*[position() mod 2 = 1]
この式はすべてのノードをマッチしますが、奇数の位置にあるノードのみを返します。必要に応じて、*を変更して特定のノードタイプを選択できます。
以下はサンプルXMLドキュメントとそのXPath式を使用したサンプルコードの例です:
XMLファイル:
<root>
<node1>Node 1</node1>
<node2>Node 2</node2>
<node3>Node 3</node3>
<node4>Node 4</node4>
<node5>Node 5</node5>
<node6>Node 6</node6>
</root>
サンプルコード(lxmlライブラリを使用したPython):
from lxml import etree
# 加载XML文档
xml = """
<root>
<node1>Node 1</node1>
<node2>Node 2</node2>
<node3>Node 3</node3>
<node4>Node 4</node4>
<node5>Node 5</node5>
<node6>Node 6</node6>
</root>
"""
root = etree.fromstring(xml)
# 使用XPath获取奇数节点
odd_nodes = root.xpath("//*[position() mod 2 = 1]")
# 打印结果
for node in odd_nodes:
print(node.tag, node.text)
結果: 結果
node1 Node 1
node3 Node 3
node5 Node 5
以上の例は、XPathを使用して奇数位置のノードを取得する方法を示しています。必要に応じてXML文書とXPath式を変更することができます。