找到只有一级XPath儿童

时间:2018-02-01 13:47:10

标签: xpath

我有以下HTML代码:



<div>
	<div>
		<span>test1</span>
	</div>
	<span>test2</span>
	<span>test3</span>
	<span>test4</span>
  <div>
    <span>test5</span>
  </div>
	<span>test6</span>
</div>
&#13;
&#13;
&#13;

如何选择作为第1个div的直接后代的所有span元素。 (带有innerText test2,test3,test4,test6的元素)?

1 个答案:

答案 0 :(得分:0)

这个XPath会让你想要

'//span[not(parent::div[parent::div])]'

xmllint --html --xpath '//span[not(parent::div[parent::div])]' test.html | sed -re 's%(</[^>]+>)%\1\n%g'                                                                                 
<span>test2</span>                                                                                                                                                                                                
<span>test3</span>                                                                                                                                                                                                
<span>test4</span>                                                                                                                                                                                                
<span>test6</span>