假设以下路由访问xml文件以使用给定的xpath(?key =)替换特定标记的文本:
@app.route('/resource', methods = ['POST'])
def update_text():
# CODE
Run Code Online (Sandbox Code Playgroud)
然后,我会像这样使用cURL:
curl -X POST http://ip:5000/resource?key=listOfUsers/user1 -d "John"
Run Code Online (Sandbox Code Playgroud)
xpath expreesion listOfUsers/user1应该访问标记<user1>以将其当前文本更改为"John".
我不知道如何实现这一点,因为我刚刚开始学习Flask和REST,我找不到任何关于这个具体案例的好例子.此外,我想使用lxml来操作xml文件,因为我已经知道了.
有人可以帮助并提供一个指导我的例子吗?
如何在Linux系统中找到已安装的python-lxml版本?
>>> import lxml
>>> lxml.__version__
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'module' object has no attribute '__version__'
>>> from pprint import pprint
>>> pprint(dir(lxml))
['__builtins__',
'__doc__',
'__file__',
'__name__',
'__package__',
'__path__',
'get_include',
'os']
>>>
Run Code Online (Sandbox Code Playgroud)
似乎无法找到它
我正试图从带有xpath的页面获取链接.问题是我只想要表中的链接,但是如果我在整个页面上应用xpath表达式,我将捕获我不想要的链接.
例如:
tree = lxml.html.parse(some_response)
links = tree.xpath("//a[contains(@href, 'http://www.example.com/filter/')]")
Run Code Online (Sandbox Code Playgroud)
问题是将表达式应用于整个文档.我找到了我想要的元素,例如:
tree = lxml.html.parse(some_response)
root = tree.getroot()
table = root[1][5] #for example
links = table.xpath("//a[contains(@href, 'http://www.example.com/filter/')]")
Run Code Online (Sandbox Code Playgroud)
但这似乎也在整个文档中执行查询,因为我仍在捕获表外的链接.此页面显示"当在元素上使用xpath()时,将针对元素(如果是相对的)或针对根树(如果是绝对的)评估XPath表达式:".那么,我使用的是绝对表达式,我需要使它相对吗?是吗?
基本上,我怎样才能只过滤此表中存在的元素?
我有一个令人困惑的问题.我使用的是mac版本10.9,anaconda 3.4.1,python 2.7.6.
使用python-amazon-product-api开发Web应用程序.我克服了安装lxml的障碍,引用了clang错误:未知参数:' - mno-fused-madd'(python包安装失败).
但发生了另一个运行时错误 这是webbrowser的输出.
Exception Type: ImportError
Exception Value:
dlopen(/Users/User_Name/Documents/App_Name/lib/python2.7/site-packages/lxml/etree.so, 2): Library not loaded: libxml2.2.dylib
Referenced from: /Users/User_Name/Documents/App_Name/lib/python2.7/site-packages/lxml/etree.so
Reason: Incompatible library version: etree.so requires version 12.0.0 or later, but libxml2.2.dylib provides version 10.0.0
Run Code Online (Sandbox Code Playgroud)
不确定如何继续并在此处和其他地方搜索此特定错误.任何帮助深表感谢!
我已经尝试了这一点并且在过去多次遇到问题.有没有人在没有MacPorts或Fink的OS X上安装lxml的配方肯定有用?
优选地,具有用于下载和构建每个依赖性的完整1-2-3步骤.
我需要在Python中编写一个解析器,它可以在没有太多内存(仅2 GB)的计算机上处理一些非常大的文件(> 2 GB).我想在lxml中使用iterparse来做到这一点.
我的文件格式为:
<item>
<title>Item 1</title>
<desc>Description 1</desc>
</item>
<item>
<title>Item 2</title>
<desc>Description 2</desc>
</item>
Run Code Online (Sandbox Code Playgroud)
到目前为止我的解决方案是:
from lxml import etree
context = etree.iterparse( MYFILE, tag='item' )
for event, elem in context :
print elem.xpath( 'description/text( )' )
del context
Run Code Online (Sandbox Code Playgroud)
不幸的是,这个解决方案仍然占用了大量的内存.我认为问题在于,在处理每个"ITEM"后,我需要做一些事情来清理空的孩子.在处理我的数据到正确清理之后,有人可以提供一些建议吗?
我正在尝试在Windows 64位机器上为Python 2.7构建lxml.我找不到Python 2.7版本的lxml egg.所以我从源头编译它.我正在按照本网站上的说明操作
在静态链接部分下.我收到了错误
C:\Documents and Settings\Administrator\Desktop\lxmlpackage\lxml-2.2.6\lxml-2.2.
6>python setup.py bdist_wininst --static
Building lxml version 2.2.6.
NOTE: Trying to build without Cython, pre-generated 'src/lxml/lxml.etree.c' need
s to be available.
ERROR: 'xslt-config' is not recognized as an internal or external command,
operable program or batch file.
** make sure the development packages of libxml2 and libxslt are installed **
Using build configuration of libxslt
Building against libxml2/libxslt in one of the following directories:
..\libxml2-2.7.6--win32--w2k--x64\lib
..\libxslt-1.1.26--win32--w2k--x64--0002\lib
..\zlib-1.2.4--win32--w2k--x64
..\iconv-1.9.1--win32--w2k--x64-0001\lib
running bdist_wininst …Run Code Online (Sandbox Code Playgroud) 我在尝试将"pip install lxml"运行到Ubuntu 12.10 x64中的virtualenv时遇到以下错误.我有Python 2.7.
我在这里看到了有关同一问题的其他相关问题,并尝试安装python-dev,libxml2-dev和libxslt1-dev.
请看一下从命令提示到错误发生的那一刻的追溯.
Downloading/unpacking lxml
Running setup.py egg_info for package lxml
/usr/lib/python2.7/distutils/dist.py:267: UserWarning: Unknown distribution option: 'bugtrack_url'
warnings.warn(msg)
Building lxml version 3.1.2.
Building without Cython.
Using build configuration of libxslt 1.1.26
Building against libxml2/libxslt in the following directory: /usr/lib
warning: no files found matching '*.txt' under directory 'src/lxml/tests'
Installing collected packages: lxml
Running setup.py install for lxml
/usr/lib/python2.7/distutils/dist.py:267: UserWarning: Unknown distribution option: 'bugtrack_url'
warnings.warn(msg)
Building lxml version 3.1.2.
Building without Cython.
Using build configuration of … 我正在开发一个涉及解析HTML的项目.
搜索后,我发现了两个可能的选项:BeautifulSoup和lxml.html
有什么理由比较喜欢一个吗?我已经在一段时间后使用了lxml for XML,我觉得我会更舒服,但是BeautifulSoup似乎很常见.
我知道我应该使用适合我的那个,但我正在寻找两者的个人经历.