我从api调用中获得了以下XML响应:
<?xml version='1.0' encoding='ISO-8859-1'?>
<PPRESULTS s="DEV12" lst="8/10/2018 10:27:06 AM">
<Results success="1" api="0" rolename="user" toolbarcode="standard" version="7.0">
<usercontext status=" " managedbilling="False" managedmf="False" masteroffice="False" msooffice="False">xxxxxLGLQs+mbLDJ3X/zNwxdeehwhEathbBoHMVgLGnbNt7X8NcI8Y7KXwO+oOrRlnWscVxoUyo/E6WUPMkPWP8aSOW9ofwFL3b6mtFDR/GLLoJIFbduGD8civ9xF/KNyd8ceXmBc6/wi3wtyvrExjkEqbHwNL6aW60FrioUZo9eW4Z2BVkT3Xaqk4He+fx1ibp8XgEGklWKa7FoA7JEvtqcgLw==</usercontext>
</Results>
</PPRESULTS>使用XPATH,我想提取以下文本:
xxxxxLGLQs+mbLDJ3X/zNwxdeehwhEathbBoHMVgLGnbNt7X8NcI8Y7KXwO+oOrRlnWscVxoUyo/E6WUPMkPWP8aSOW9ofwFL3b6mtFDR/GLLoJIFbduGD8civ9xF/KNyd8ceXmBc6/wi3wtyvrExjkEqbHwNL6aW60FrioUZo9eW4Z2BVkT3Xaqk4He+fx1ibp8XgEGklWKa7FoA7JEvtqcgLw==我得到了这个xpath PPRESULTS/Results[1]/usercontext[1],但是它提取了<usercontext </usercontext>中的所有内容,我该如何只提取这些文本呢?请记住,文本总是在变化,它是一个令牌。
发布于 2018-08-11 01:31:07
在浏览器中使用javascript,您可以执行以下操作
document.evaluate('//usercontext//text()', document, null, XPathResult.ANY_TYPE, null).iterateNext().textContent(有关更多详细信息,请查看https://developer.mozilla.org/en-US/docs/Web/JavaScript/Introduction_to_using_XPath_in_JavaScript )。
如果你使用的是Python,你可以这样做:
>>> from lxml import etree
>>> doc = etree.parse(open('foo.xml', 'rb'))
>>> print doc.xpath('//usercontext//text()')
['xxxxxLGLQs+mbLDJ3X/zNwxdeehwhEathbBoHMVgLGnbNt7X8NcI8Y7KXwO+oOrRlnWscVxoUyo/E6WUPMkPWP8aSOW9ofwFL3b6mtFDR/GLLoJIFbduGD8civ9xF/KNyd8ceXmBc6/wi3wtyvrExjkEqbHwNL6aW60FrioUZo9eW4Z2BVkT3Xaqk4He+fx1ibp8XgEGklWKa7FoA7JEvtqcgLw==']在任何情况下,都需要使用text()函数来获取节点的文本内容。
https://stackoverflow.com/questions/51791119
复制相似问题