2015-05-25 84 views
-3

我必须检查一个元素是否有特定的孩子。 我试过hasattr(),它不工作如何检查一个特定的孩子是否在Python中

例如:我有一个XML,其中框架是一个元素。我有一个很大的没有。元素'框架'。信号和信号组是儿童,都是可选的。我想检查一个特定的帧是否有一个子信号组。

请让我知道如何检查。

UPDATE:

我不知道是哪个库,但我使用Symtavision软件解析XML和运行Python脚本。

我附上了我正在使用的一段代码: 框架有小孩'信号和信号组'。一个特定的框架可能既有孩子也有他们中的任何一个。我想检查一个框架是否有孩子'Signalgroup'。

frames = system.getElements('Frame') 

Signalgroups = system.getElements('Signalgroup') 

for frame in frames: 

    if(hasattr (frame.Signalgroup) == True): 
      #some task 
    else: 
      #some task 
+3

你用什么库来解析XML?你有一些代码要显示吗? –

+0

这里没有足够的信息,但你可能想检查[这个问题](http://stackoverflow.com/questions/15568126/how-can-i-check-the-existence-of-attributes-and-标签在xml-before-parsing)out。 –

+0

请提供更多信息并阅读[我如何提出一个好问题?](http://stackoverflow.com/help/how-to-ask);你在用什么库?请向我们展示您的代码示例。 –

回答

0

试试这个:

frames = system.getElements("Frame") 

for frame in frames:  
    if(len(frame.getChildren("SignalGroup")) > 0): 
     print "Got some SignalGroup" 
    else: 
     print "No SignalGroup" 

的信号组是帧的孩子。 顺便说一句:你可以用element.getParents(...)导航到父母。 我建议你改变你的问题的标题,因为它不是纯粹的python问题,而是更多的Symtavision(SymTA/S)API问题。干杯克里斯

相关问题