Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/311.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从xml数据中提取所有文本_Python_Xml_Xml Parsing_Xpath_Lxml - Fatal编程技术网

使用python从xml数据中提取所有文本

使用python从xml数据中提取所有文本,python,xml,xml-parsing,xpath,lxml,Python,Xml,Xml Parsing,Xpath,Lxml,我不熟悉xml数据处理。我想提取以下xml文件中的文本数据: <data> <p>12345<strong>45667</strong>abcde</p> </data> 但是结果只显示['12345','45667']“abcde”缺失。有人能帮我吗?提前谢谢 尝试使用和执行此操作: getiterator()(或其替代品)迭代子标记/元素,而abcde是一个文本节点,是strong标记的一部分 您可以使用以下方

我不熟悉xml数据处理。我想提取以下xml文件中的文本数据:

<data>
    <p>12345<strong>45667</strong>abcde</p>
</data>
但是结果只显示
['12345','45667']
<代码>“abcde”缺失。有人能帮我吗?提前谢谢

尝试使用和执行此操作:

getiterator()
(或其替代品)迭代子标记/元素,而
abcde
是一个文本节点,是
strong
标记的一部分

您可以使用以下方法:

印刷品:

['12345', '45667', 'abcde']

您确定OP正在使用
lxml
?另外,添加一些解释怎么样?OP调用
ET.parse
,它来自lxml,在@Camron_Godbout的文档中作为etree,没有什么区别:
import lxml.etree as etree

string = '''
<data>
    <p>12345<strong>45667</strong>abcde</p>
</data>
'''

tree = etree.fromstring(string)

print(tree.xpath('//p//text()'))
['12345', '45667', 'abcde']
import xml.etree.ElementTree as ET

tree = ET.parse('test.xml')
print list(tree.find('p').itertext())
['12345', '45667', 'abcde']