Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用XPATH返回多个字符串_Xpath_Google Sheets - Fatal编程技术网

使用XPATH返回多个字符串

使用XPATH返回多个字符串,xpath,google-sheets,Xpath,Google Sheets,源网站在这里 因为我不知道所有的术语,所以我会尽量保持中立。我正试图从这个网站收集信息到一个单独的专栏中。 我希望在一列中显示粗体文本,在下一列中显示相关链接,在另一列中显示拼写说明。当一个描述引用另一个拼写时,问题就出现了。他们用斜体字将描述分成多个部分,如C153和C154所示。我认为在粗体文本和换行符之间抓住所有内容会更容易,但我不知道上下文 例如,如果格式错误,请原谅我,我在这里主要是猜测 <p> <b> <a href='link1'>

源网站在这里

因为我不知道所有的术语,所以我会尽量保持中立。我正试图从这个网站收集信息到一个单独的专栏中。 我希望在一列中显示粗体文本,在下一列中显示相关链接,在另一列中显示拼写说明。当一个描述引用另一个拼写时,问题就出现了。他们用斜体字将描述分成多个部分,如C153和C154所示。我认为在粗体文本和换行符之间抓住所有内容会更容易,但我不知道上下文

例如,如果格式错误,请原谅我,我在这里主要是猜测

<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>
我可以把它拿回来 :后跟普通文本 普通文本 中间 :回到这个

但我想让它返回:后跟普通文本:中间有斜体的普通文本:返回到这个


我甚至不知道是否可以用一个命令来完成,但是如果您想选择p根元素的每个文本节点子代,而它不是a的子代,请使用以下XPath:

/p//text()[not(ancestor::a)]
或使用Kayian方法进行更多限制:

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

注意:XPath 1.0既没有交集也没有集合差分运算符,但它有并集by |运算符和基数by count函数。发现这些都足以测试集合成员身份:当且仅当{a}联合B的基数与B相同时,元素才是B集合的成员。从那里可以构建所有其他集合操作

这已经解决了吗?@player0,没有,甚至没有。事实上,IMPORTXML所施加的限制非常严格,根据其他一些论坛的建议,我只是通过BS4将整个项目迁移到Python中。实际上,从头开始要比弄明白这一点容易得多。为了避免IMPORTXML的限制,最好只导入一次,然后在单元格中刮取它=数组\u约束导入xmlhttps://aonprd.com/Spells.aspx?Class=Shaman,//*,10000,30我所关注的所有迭代都需要用到数百个importXML