我被XML和Python卡住了。任务很简单,但我一直无法解决它,花了很长时间。我来这里寻求建议,如何用几行代码解决它。
感谢任何关于遍历树的帮助。我总是得到太多或太少的元素。元素可以无限嵌套。给出的示例只是一个例子。我接受任何解决方案,不挑剔dom,minidom,sax等等..
我有一个类似于这个的XML文件:
<root>
<elm>
<elm>Common content</elm>
<elm xmlns="http://example.org/ns">
<elm lang="en">Content EN</elm>
<elm lang="cs">žluťoučký koníček</elm>
</elm>
<elm xml:id="abc123">Common content</elm>
<elm lang="en">Content EN</elm>
<elm lang="cs">Content CS</elm>
<elm lang="en">
<elm>Content EN</elm>
<elm>Content EN</elm>
</elm>
<elm lang="cs">
<elm>Content CS</elm>
<elm>Content CS</elm>
</elm>
</elm>
</root>
我需要的是解析XML并编写一个新文件。新文件应包含给定语言的所有元素和没有lang
属性的元素。
对于“cs”语言,输出文件应包含以下内容:
<root>
<elm>
<elm>Common content</elm>
<elm xmlns="http://example.org/ns">
<elm lang="cs">žluťoučký koníček</elm>
</elm>
<elm xml:id="abc123">Common content</elm>
<elm lang="cs">Content CS</elm>
<elm lang="cs">
<elm>Content CS</elm>
<elm>Content CS</elm>
</elm>
</elm>
</root>
如果你能在新文件中省略lang
属性,那就更好了,但这并不是很重要。
UPDATE1: 添加了Unicode字符和命名空间属性。
UPDATE2: 使用Python 2.5,优先使用标准库。