Html 使用换行符从一个跨度中获取两个单独的xpath值
我的HTML如下所示:Html 使用换行符从一个跨度中获取两个单独的xpath值,html,xpath,scrapy,Html,Xpath,Scrapy,我的HTML如下所示: <span> Word 1 Sentence 1 </span> 这让我 Word 1 Sentence 1 在XPATH中,是否可以分别获取/提取单词1和句子1? (Python中用于Scrapy的XPath提取器) 我试过: //span/text()[1] //span/text()[2] substring-before(//span/text(),'\n') 但这两种方法都是胡乱猜测,不起作用。请参阅以了解如何正确访问元素的内部内
<span>
Word 1
Sentence 1
</span>
这让我
Word 1
Sentence 1
在XPATH中,是否可以分别获取/提取单词1和句子1?
(Python中用于Scrapy的XPath提取器)
我试过:
//span/text()[1]
//span/text()[2]
substring-before(//span/text(),'\n')
但这两种方法都是胡乱猜测,不起作用。请参阅以了解如何正确访问元素的内部内容
然后,处理输出字符串以满足您的需要。您可以使用 第二项“句子1”用 如果不需要,可以删除
规范化空间(…)
。上下文节点应该是
span
的父节点,否则应该在表达式前面加/
。您的主要问题是在第一项之前有换行符(\n
)
编辑:我添加了一个处理
CR
charforwindows'CRLF
的解决方案。它只是删除CR
字符,并作用于LF
字符。似乎没有解决我的问题。我添加了更多的内容来澄清。我明白了,谢谢。但对于在Linux和Windows上创建的HTML文件,这会有所不同吗<代码>\r\n和\n
问得好。我添加了一个处理CRLF
情况的解决方案。它的简单方法是从输入中删除CR
字符。
//span/text()[1]
//span/text()[2]
substring-before(//span/text(),'\n')
normalize-space(substring-before(substring-after(translate(span/text(),'
',''),'
'),'
'))
normalize-space(substring-after(substring-after (translate(span/text(),'
',''),'
'),'
'))