标签: lxml

使用POST的Flask示例

假设以下路由访问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文件,因为我已经知道了.

有人可以帮助并提供一个指导我的例子吗?

python rest lxml flask

42
推荐指数
2
解决办法
11万
查看次数

找到python lxml版本

如何在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)

似乎无法找到它

python lxml

41
推荐指数
4
解决办法
1万
查看次数

Python:在特定元素上本地使用xpath

我正试图从带有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表达式:".那么,我使用的是绝对表达式,我需要使它相对吗?是吗?

基本上,我怎样才能只过滤此表中存在的元素?

python xpath lxml

39
推荐指数
1
解决办法
1万
查看次数

lxml运行时错误:原因:不兼容的库版本:etree.so需要12.0.0或更高版本,但libxml2.2.dylib提供版本10.0.0

我有一个令人困惑的问题.我使用的是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)

不确定如何继续并在此处和其他地方搜索此特定错误.任何帮助深表感谢!

python lxml amazon osx-mavericks

38
推荐指数
4
解决办法
2万
查看次数

如何删除etree元素的属性?

我有一些属性的元素 - 我们如何删除特定etree元素的属性.

python xml lxml elementtree

37
推荐指数
3
解决办法
3万
查看次数

如何在不使用MacPorts或Fink的情况下在OS X Leopard上安装lxml?

我已经尝试了这一点并且在过去多次遇到问题.有没有人在没有MacPorts或Fink的OS X上安装lxml的配方肯定有用?

优选地,具有用于下载和构建每个依赖性的完整1-2-3步骤.

python macos shell lxml osx-leopard

36
推荐指数
5
解决办法
3万
查看次数

对大型XML文件使用Python Iterparse

我需要在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"后,我需要做一些事情来清理空的孩子.在处理我的数据到正确清理之后,有人可以提供一些建议吗?

python xml lxml elementtree large-files

36
推荐指数
2
解决办法
3万
查看次数

在Windows上为Python 2.7构建lxml

我正在尝试在Windows 64位机器上为Python 2.7构建lxml.我找不到Python 2.7版本的lxml egg.所以我从源头编译它.我正在按照本网站上的说明操作

http://lxml.de/build.html

在静态链接部分下.我收到了错误

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)

python windows lxml building python-c-extension

35
推荐指数
1
解决办法
6万
查看次数

在virtualenv中使用pip安装lxml Ubuntu 12.10错误:命令'gcc'失败,退出状态为4

我在尝试将"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 …

python django gcc lxml

35
推荐指数
4
解决办法
4万
查看次数

BeautifulSoup和lxml.html - 更喜欢什么?

我正在开发一个涉及解析HTML的项目.

搜索后,我发现了两个可能的选项:BeautifulSoup和lxml.html

有什么理由比较喜欢一个吗?我已经在一段时间后使用了lxml for XML,我觉得我会更舒服,但是BeautifulSoup似乎很常见.

我知道我应该使用适合我的那个,但我正在寻找两者的个人经历.

python lxml beautifulsoup

32
推荐指数
2
解决办法
3万
查看次数