Html 使用换行符从一个跨度中获取两个单独的xpath值

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') 但这两种方法都是胡乱猜测,不起作用。请参阅以了解如何正确访问元素的内部内

我的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')
但这两种方法都是胡乱猜测,不起作用。

请参阅以了解如何正确访问元素的内部内容


然后,处理输出字符串以满足您的需要。

您可以使用

第二项“句子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(),'&#xd;',''),'&#xa;'),'&#xa;'))
normalize-space(substring-after(substring-after (translate(span/text(),'&#xd;',''),'&#xa;'),'&#xa;'))