如何替换xml里面的变量

我用python request 进行post表单数据,我用抓包看见是xml的格式,需要用xml进行post数据,xml如下:

<method type="saveSitePublishConfig">wcm6_publish</method>
  <parameters>
    <OBJECTID><![CDATA[0]]></OBJECTID>
    <FLOWDOCID><![CDATA[0]]></FLOWDOCID>
    <CHANNELID><![CDATA[17291]]></CHANNELID>
    <FORCE2START><![CDATA[]]></FORCE2START>
    <TITLE><![CDATA[标题标题]]></TITLE>
    <IDXID><![CDATA[]]></IDXID>
    <KEYAREACAT><![CDATA[]]></KEYAREACAT>
    <ROOT-KEYAREACAT><![CDATA[6515]]></ROOT-KEYAREACAT>
    <PUBDATE><![CDATA[2016-12-02]]></PUBDATE>
    <PUBLISHER><![CDATA[栏目名称]]></PUBLISHER>
    <THEMECAT><![CDATA[6429]]></THEMECAT>
    <ROOT-THEMECAT><![CDATA[6423]]></ROOT-THEMECAT>
    <EFECTDATE><![CDATA[]]></EFECTDATE>
    <FILENUM><![CDATA[]]></FILENUM>
    <ORGANCAT><![CDATA[6177]]></ORGANCAT>
    <ROOT-ORGANCAT><![CDATA[6175]]></ROOT-ORGANCAT>
    <KEYWORDS><![CDATA[]]></KEYWORDS>
    <ABOLIDATE><![CDATA[]]></ABOLIDATE>
    <RIDXID><![CDATA[]]></RIDXID>
    <PLACEKEY><![CDATA[]]></PLACEKEY>
    <ACESMTHD><![CDATA[互联网]]></ACESMTHD>
    <MDUPDTIME><![CDATA[]]></MDUPDTIME>
    <TOPFLAG><![CDATA[0]]></TOPFLAG>
    <TOPINVALIDTIME><![CDATA[2016-12-03 00:00:38]]></TOPINVALIDTIME>
    <DESCRIPTION><![CDATA[]]></DESCRIPTION>
    <CONTENT><![CDATA[内容内容内容内容内容]]></CONTENT>
    <RTITLE><![CDATA[]]></RTITLE>
  </parameters>

我思路是用个for循环把xml里面的《TITLE》《CONTENT》替换生成n个xml,然后挨个post上去,现在遇到问题,不知道怎么把整个xml的title、content标签内的变成变量,或者进行循环遍历;

想不出来办法我用BeautifulSoup 进行解析xml,也能找到title的值,但不会替换,怎么进行替换再进行for遍历小白就苦恼了,其他的思路也想不出来,盼大侠指点,苦恼中

还有个思路是用字典生成xml,但感觉生成的格式不好控制,就没执行,按得上面思路也没眉目。

阅读 4.3k
3 个回答
新手上路,请多包涵

xmltodict 这个包挺好用哒

一个思路建议:

1.用1楼提到的那个包解析xml dom结构
2.利用这个dom写一个jinja的xml模板
3.用jinja自带的渲染函数render把变量渲染进去
4.写到文件,完成
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题