我有以下XML:
...<span class="st">In Tim <em>Power</em>: Politieman...</span>...
我想提取<span>标签之间的部分.为此,我使用XPath:
   /span[@class="st"]
然而,这将提取包括的所有内容<span>.和.
  /span[@class="st"]/text()
将返回两个文本元素的列表.一个包含"在蒂姆".另一个":政治家".将<em>..</em>不包含,犹如分离处理.
是否有一个纯XPath解决方案返回:
In Tim <em>Power</em>: Politieman...
编辑 
感谢@helderdarocha和@TextGeek.使用XPath提取纯文本似乎非常简单,包括<em>.
/ span [@ class ="st"]/node()解决方案创建一个包含各行的列表,在Python中创建一个String是很简单的.
要获取任何子节点,您可以使用:
/span[@class="st"]/node()
这将返回:
<em>节点(元素和内容).如果你真的想要所有的text()节点,包括里面的节点em,那么得到所有的text()后代:
/span[@class="st"]//text()
要么
/span[@class="st"]/descendant::text()
这将返回三个文本节点,文本内部 <em>,但不返回<em>元素.