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式を変更することができます。

bannerAds