如何解决首选Python XML处理器
| 与Python搭配使用的首选XML处理器是什么? 一些选择是 极小 PyXML 元素树 ... 编辑:我将需要能够阅读文档并进行操作。我还需要漂亮的打印功能。解决方法
lxml是它所在的位置。
这是一些示例代码:
import textwrap
from os.path import join
from lxml import etree
# string to Element
tree = etree.XML(textwrap.dedent(\'\'\'
<foo_tag>
foo text
<bar_tag some_attr=\'ok\'>bar text</bar_tag>
</foo_tag>
\'\'\'))
print \'root text: \',tree.text
print \'pretty_print: \'
print etree.tostring(tree,pretty_print=True)
print \'last child: (%s) (%s)\' % (tree[-1].tag,tree[-1].text)
print
# filename to ElementTree
tree = etree.parse(\'some_file.xhtml\')
def recurse(root,depth):
line = \' \' * depth + root.tag + \' {%s}\' % \',\'.join(root.attrib.keys())
if root.text:
line += \' <%s>\' % root.text.strip()
print line
for child in root:
recurse(child,depth + 1)
print \'recurse tree:\'
recurse(tree.getroot(),0)
print
print \'find title: \',tree.findtext(\'html/head/title\')
print \'find title again: \',tree.find(\'html\').find(\'head\').find(\'title\').text
这是ѭ1,可用于测试:
<?xml version=\"1.0\" encoding=\"utf-8\"?>
<root>
<metadata/>
<html>
<head>
<title style=\"bold\">Page Title</title>
<span>Here\'s a <a href=\"google.com\">link</a> to somewhere.</span>
</head>
<body bgcolor=\"#ffffff\">Hello,World!</body>
</html>
</root>
, 我可以担保ElementTree-它不是一个特别完整的XML实现。它的主要优势是DOM树对象的使用简单。它们的行为类似于常规的pythonic对象(序列和字典),即使其实际实现比外观可能暗示的要复杂一些。在所有XML框架中,ET都是可以用来快速完成基本任务的框架。
另一方面,如果您的XML大部分是传统的东西,那么它可以很好地读取和格式化您所投递的任何文档。
恼人的限制(四个月前似乎还没有修复)是它对XML名称空间的不可靠支持,缺少Xpath。
总而言之,它适合基本用途。它可以让您快速起步。 XML专家会发现它缺乏。
, 我是BeautifulSoup的忠实粉丝...我发现它是最容易使用的解析器!
, 如果您只是解析文档而不是对其进行操作。我建议为Python使用SAX Parser
http://docs.python.org/library/xml.sax.reader.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。