Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/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
Python lxml不';如果文本具有<;br/>;?_Python_Text_Lxml_Elementtree - Fatal编程技术网

Python lxml不';如果文本具有<;br/>;?

Python lxml不';如果文本具有<;br/>;?,python,text,lxml,elementtree,Python,Text,Lxml,Elementtree,我正在使用lxml解析web文档,我想获取元素中的所有文本,因此我使用以下代码: from lxml import etree page = etree.HTML("<html><p>test1 <br /> test2</p></html>") print page.xpath("//p")[0].text # this just print "test1" not "test1 <br/> test2" 从lx

我正在使用
lxml
解析web文档,我想获取
元素中的所有文本,因此我使用以下代码:

from lxml import etree

page = etree.HTML("<html><p>test1 <br /> test2</p></html>")
print page.xpath("//p")[0].text    # this just print "test1" not "test1 <br/> test2"
从lxml导入etree
page=etree.HTML(“test1
test2

”) 打印page.xpath(“//p”)[0].text#这只是打印“test1”而不是“test1
test2”
问题是我想获取
中的所有文本,在示例中是
test1
test2
,但是
lxml
只需给我
test1

如何获取
元素中的所有文本?

可能是这样的

from lxml import etree

pag = etree.HTML("<html><p>test1 <br /> test2</p></html>")
# get all texts
print(pag.xpath("//p/text()"))
测试1测试2


其他几种可能的方式:

p = page.xpath("//p")[0]
print etree.tostring(p, method="text")
或者使用XPath
string()
函数(注意XPath位置索引从1开始,而不是从0开始):


可能重复:@har07似乎我应该使用
text\u content()
,但是
AttributeError:'lxml.etree.\u Element'对象没有属性“html\u content”
好的,因为您尝试使用
text\u content()
我假设您想要的文本没有

。检查我的答案,了解一些可能的方法“我想获取
中的所有文本,即
test1
test2
”。这是不对的。实际文本内容是
test1 test2

元素是
的子元素,但它不是文本。
p = page.xpath("//p")[0]
print etree.tostring(p, method="text")
page.xpath("string(//p[1])")