使用XPATH返回多个字符串

时间:2019-04-06 04:00:54

标签: xpath google-sheets

来源网站位于Nethys

由于我不了解所有术语,因此我将尽可能保持中立。我正在尝试从此网站上将信息收集到google doc中的单独列中。 我想要一列中的粗体文本,下一列中的关联链接以及另一列中的拼写描述。当描述引用另一个咒语时,就会出现问题,他们用斜体将描述分成C153C154中看到的多个部分。我认为,抓住粗体和换行符之间的所有内容会更容易,但我不知道上下文。

从一个示例(例如,如果格式错误请原谅我,我主要是在这里猜测);

<p>
 <b>
  <a href='link1'> 
  Bold Link 1
  </a>
 </b>
 :Followed by normal text
 <br>
 <b>
  <a href='link2'>
  Bold Link 2
  </a>
 </b>
 :Normal Text
 <i>with an italic</i>
 in between
 <br>
 <b>
  <a href='link3'>
  Bold Link 3
  </a>
 </b>
 :Back to this one
 <br>
</p>

我可以退货 :Followed by normal text Normal text in between :Back to this one

但是我希望它返回:Followed by normal text :Normal text with an italic in between :Back to this one

我什至不知道单个命令是否可行,但任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

如果您要选择p根元素的每个文本节点后代,而不是a的后代,则可以使用以下XPath:

/p//text()[not(ancestor::a)]

或更严格地使用Kayian方法:

/p//text()[count(.|/p//a//text()) != count(/p//a//text())]

注意:XPath 1.0没有交集,也没有设置差分运算符,但是它具有|运算符的并集和count()函数的基数。 Dr. Michael Kay发现了足以测试集合成员资格的条件:a元素是B集的成员,且仅当{a}联合B具有基数与B相同。从那里您可以构建所有其他集合操作。