解析内容(xpath):
str转换为Element对象:
from lxml import etree
text = """
<bookstore>
<book>
<title lang="eng">Harry Potter</title>
<price>29.99</price>
</book>
<book>
<title lang="eng">Learning XML</title>
<price>39.95</price>
</book>
</bookstore>
"""
print(type(text))
#将字符串转化为Element对象
html = etree.HTML(text)
print(html)
print(type(html))
#将Element对象转化为二进制
text2=etree.tostring(html)
print(text2)
print(type(text2))
etree.HTML(text):
先将html/xml的字符串类型转换为Element对象,因为xpath使用的在Element对象上。
etree.tostring(element) :
将Element对象转化为二进制
在用xpath对这个Element对象进行操作:
路径表达式 | 结果 |
---|---|
bookstore | 选择bookstore元素。 |
/bookstore | 选取根元素 bookstore。注释:假如路径起始于正斜杠( / ),则此路径始终代表到某元素的绝对路径! |
bookstore/book | 选取属于 bookstore 的子元素的所有 book 元素。 |
//book | 选取所有 book 子元素,而不管它们在文档中的位置。 |
bookstore//book | 选择属于 bookstore 元素的后代的所有 book 元素,而不管它们位于 bookstore 之下的什么位置。 |
//book/title/@lang | 选择所有的book下面的title中的lang属性的值。 |
//book/title/text() | 选择所有的book下面的title的文本。 |
text()获取内容
@属性 获取属性值