我试图从以下类型的XML中提取导演和演员
第一个案例
Directors <a href="">Leslie Greif</a>. With <a href="">Wendi McLendon-Covey</a>, <a href="">Tammin Sursok</a>, <a href="">Jesse Bradford</a>, <a href="http://www.mymovies.it/biografia/?a=141527">Reid Ewing</a>. Genre <a href="">Commedy</a>
感谢this回答我现在可以通过查找&#39; With&#39; 字符串将导演与演员分开:
.//a[following-sibling::text()[contains(., 'With')]]
第二个案例
不幸的是,有些情况下没有演员,所以没有&#39; With&#39;字符串,但只有&#39;类型&#39;
Director <a href="">Michael Mellon</a>, <a href="">Alexander Rossi</a>. Genre <a href="">Doc</a>
所以我猜测下面的xpath可以完美无缺地工作:
.//a[following-sibling::text()[contains(., 'With') or contains(., 'Genre')]]
但是如果存在或者没有字符串&#39;使用&#39;这个xpath确实会独立提取每个名称流派。它并不关心第一个条件(&#39; With&#39;)。
答案 0 :(得分:0)
您可以反过来看一下 - 对于导演,您会找到包含 Genre
或With
的第一个文本节点,然后提取所有< em>前面的 a
元素
text()[contains(., 'With') or contains(., 'Genre')][1]/preceding-sibling::a
对于演员而言,您需要a
和With
之间的所有Genre
元素(如果没有With
则可能为零)
a[preceding-sibling::text()[contains(., 'With')]]
[following-sibling::text()[contains(., 'Genre')]]