栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何在python中将jenkins作业配置config.xml转换为YAML格式以用于jenkins-job-builder?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何在python中将jenkins作业配置config.xml转换为YAML格式以用于jenkins-job-builder?

从您的问题很难确切地知道您在这里寻找什么,但是假设您正在寻找基本结构:

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解析器。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/413349.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号