从您的问题很难确切地知道您在这里寻找什么,但是假设您正在寻找基本结构:
Python在大多数平台上都对XML解析提供了良好的支持。您可能会想使用一些简单易用的东西,例如minidom。有关您的python版本,请参见python文档中的
XML处理模块 。
project鉴于yaml格式的简单性,打开文件后,查找然后从那里进行解析并使用简单的映射应该可以很好地工作。
from xml.dom.minidom import parsedef getText(nodelist): rc = [] for node in nodelist: if node.nodeType == node.TEXT_NODE: rc.append(node.data) return ''.join(rc)def getTextForTag(nodelist,tag): elements = nodelist.getElementsByTagName(tag) if (elements.length>0): return getText( elements[0].childNodes) return ''def printValueForTag(parent, indent, tag, valueName=''): value = getTextForTag( parent,tag) if (len(value)>0): if (valueName==''): valueName = tag print indent + valueName+": "+valuedef emitLogRotate(indent, rotator): print indent+"logrotate:" indent+=' ' printValueForTag( rotator,indent, 'daysToKeep') printValueForTag( rotator,indent, 'numToKeep') def emitProject(project): print "- project:" # all projects have log rotators, so no need to chec emitLogRotate(" ",project.getElementsByTagName('logRotator')[0]) # next section...dom = parse('config.xml')emitProject(dom)该代码片段仅会打印最终配置文件的几行,但它为您提供了使用简单翻译器的正确方向。根据我所看到的,由于命名差异,自动翻译方案没有太多空间。您可以在迭代中获得更多选项并进行表驱动时简化代码,但这只是“编程问题”,这至少会使您开始使用python中的DOM解析器。



