Python是否具有LINQ to XML之类的功能

时间:2011-05-25 08:54:35

标签: python

我需要解析XML文件并将结果放在HTML表单上,但我是Python的新手。 Python 2.7是否具有来自C#的LINQ to XML或任何优秀的XML库可以建议我?

3 个答案:

答案 0 :(得分:1)

查看Pynq - Python语言集成查询https://github.com/heynemann/pynq/wiki

我敢肯定,如果Pynq对你来说足够了,虽然它确实在Python中实现了exprenssion树,就像LINQ对C#一样。

有关在Python中访问XML的简便方法,您可以查看BeautifulSoup(http://www.crummy.com/software/BeautifulSoup/documentation.html)。注意:对于XML处理:使用BeautifulStoneSoup进行XML处理。

一个简单的例子:“找到前三个标签”

soup.findAll('p', limit=3)

有关Python的更全面的XML库选择,请参阅PythonInfo Wiki中的"PythonXml"

答案 1 :(得分:1)

查看lxml,更具体地说是:

的组合
  • ElementTree接口:一个比DOM更简单的xml模型/ api,很像XDocument和XElement类(属性和文本更简单,因为它们不是单独的“节点”,如果你正在工作,它们可能看起来很奇怪“混合内容”模型很多,你已经习惯了DOM接口)
  • lxml.builder的E-factory(类似于LINQ to XML中的“功能构造”,但更好; - ))
  • python的内置列表推导和生成器表达式,它可以让你非常接近LINQ查询语法(但是看起来不像SQL; - ))

...会给你一个非常相似的经历。 (在.NET中也使用LINQ to XML:我更喜欢使用python和lxml)

另一个评论:lxml对html(甚至是格式错误)有一些很好的支持,包括filling out html forms的设施(我不确定这是否与你在“html表单上放置结果”的意思相同)不过)

答案 2 :(得分:0)

python中功能最强大的XML库是lxml http://lxml.de,但据我所知它不支持LINQ接口。

您可以使用ElementTree界面http://lxml.de/tutorial.html#the-elementtree-class

或XPAth选择器http://lxml.de/xpathxslt.html#xpath

或CSS选择器http://lxml.de/cssselect.html

从XML中提取数据。