này được dữ liệu xml của tôiLàm thế nào để lấy tất cả các nút con trong một truy vấn duy nhất sử dụng lxml & XPATH
<location>
<city>
<name> New York</name>
<type>non-capital</type>
</city>
<city>
<name> London</name>
<type>capital</type>
</city>
</location>
sử dụng lxml & python
from lxml import etree as ET
parser = ET.XMLParser(recover=True)
tree = ET.fromstring(xml_data,parser)
print(tree.xpath('//city//name/text() | //city//type/text()'))
Các công trình mã trên nhưng tôi muốn một mô tả mảng lồng nhau là [['New York','non-capital'],['London','capital']]
Truy vấn/kết hợp xpath chính xác của kết hợp truy vấn/vòng lặp để nhận được điều gì ở trên?
'[[c.text cho c trong n] với n trong tree.xpath ('// city')] 'hoạt động tốt, c.tail làm gì? – wolfgang
Chỉ là thói quen của tôi mà tôi có, nhưng trong trường hợp của bạn là không cần thiết. lxml có thể có văn bản bình thường và cái gọi là văn bản đuôi. Thêm [đây] (http://lxml.de/tutorial.html) – Marcin
Tiếp tục nhận được lỗi này-ValueError: Các chuỗi Unicode có khai báo mã hóa không được hỗ trợ. Vui lòng sử dụng các byte đầu vào hoặc các đoạn XML mà không cần khai báo. –