首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python xml elementree如何检查元素是否存在并处理代码?

Python xml elementree如何检查元素是否存在并处理代码?
EN

Stack Overflow用户
提问于 2018-08-02 23:42:41
回答 1查看 3K关注 0票数 4
代码语言:javascript
复制
<rules>
    <entry name="rule name 1">
      <to>
        <member>untrust</member>
      </to>
      <from>
        <member>trust</member>
      </from>
      <source>
        <member>object1</member>
      </source>
      <destination>
        <member>any</member>
      </destination>
      <service>any</service>
      <description>'NAT Rule 1'</description>
      <nat-type>ipv4</nat-type>
      <source-translation>
        <static-ip>
          <bi-directional>yes</bi-directional>
          <translated-address>object1-pub</translated-address>
        </static-ip>
      </source-translation>
    </entry>
    <entry name="rule name 2">
      <to>
        <member>untrust</member>
      </to>
      <from>
        <member>trust</member>
      </from>
      <source>
        <member>any</member>
      </source>
      <destination>
        <member>object2-pub</member>
      </destination>
      <destination-translation>
        <translated-address>object2</translated-address>
      </destination-translation>
      <service>any</service>
      <description>'NAT Rule 2'</description>
      <tag>
        <member>DST NAT</member>
      </tag>
    </entry>
</rules>    

嗨,

我正在尝试使用python中的xml elementree来处理上面的xml。我正在寻找一种方法来检查是否存在<'source-traslation'>或<'destination-translation'>。简而言之,如果是源转换,则将nat类型变量设置为源nat,并进一步获取和值。如果存在<'destination-address'>,则处理逻辑以获取其值。我把所有这些数据放在一个字典里,格式是这样的…

代码语言:javascript
复制
rules{
        rule_name: <name>
        options:{
                src_zone:<from>
                source:<source>
                dst_zone:<to>
                destination:<destination>
                nat-type:<appliaction>
                service:<service>
                traslated-address:<translated-address>
                destination-address:<destination-address>
        }       
}

我已经尝试了各种组合,但是它对我不起作用。

EN

回答 1

Stack Overflow用户

发布于 2018-08-02 23:56:14

要检查您的元素是否存在,您可以使用如下的if语句:

代码语言:javascript
复制
import xml.etree.ElementTree as ET
root = ET.parse('PATH_TO_YOUR_FILE').getroot()
if len(root.findall('source-translation')) > 0:
    PUT YOUR CODE HERE
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51657574

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档