首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NSXMLElement漫游

NSXMLElement漫游
EN

Stack Overflow用户
提问于 2015-10-08 17:09:11
回答 1查看 74关注 0票数 0

我有一个NSXMLDocument (一个FCPX导出的.fcpxml)的元素,我想遍历它,而不是先获取孩子,然后再获取嵌套的孩子,等等:

代码语言:javascript
复制
    <spine>  
     <clip name="Referee" offset="0s" duration="5s" format="r2" tcFormat="NDF">  
      <video offset="0s" ref="r3" duration="418132800/90000s">  
       <audio lane="-2" offset="0s" ref="r3" srcID="2" duration="3345062400/720000s" role="dialogue" srcCh="1, 2"/>  
       <audio lane="-1" offset="0s" ref="r3" duration="3345062400/720000s" role="dialogue" srcCh="1, 2"/>  
      </video>  
      <spine lane="1" offset="119/25s" format="r1">  
       <clip name="Referee" offset="0s" duration="403200/90000s" start="1300/2500s" format="r2" tcFormat="NDF">  
        <adjust-volume amount="-96dB"/>  
        <video offset="0s" ref="r3" duration="418132800/90000s">  
         <audio lane="-2" offset="0s" ref="r3" srcID="2" duration="3345062400/720000s" role="dialogue" srcCh="1, 2"/>  
         <audio lane="-1" offset="0s" ref="r3" duration="3345062400/720000s" role="dialogue" srcCh="1, 2"/>  
        </video>  
       </clip>  
       <transition name="Cross Dissolve" offset="313200/90000s" duration="1s">  
        <filter-video ref="r4" name="Cross Dissolve">  
         <param name="Look" key="1" value="11 (Video)"/>  
         <param name="Amount" key="2" value="50"/>  
         <param name="Ease" key="50" value="2 (In &amp; Out)"/>  
         <param name="Ease Amount" key="51" value="0"/>  
        </filter-video>  
        <filter-audio ref="r5" name="Audio Crossfade"/>  
       </transition>  
      </spine>  
     </clip>  
     <transition name="Cross Dissolve" offset="4s" duration="1s">  
      <filter-video ref="r4" name="Cross Dissolve">  
       <param name="Look" key="1" value="11 (Video)"/>  
       <param name="Amount" key="2" value="50"/>  
       <param name="Ease" key="50" value="2 (In &amp; Out)"/>  
       <param name="Ease Amount" key="51" value="0"/>  
      </filter-video>  
      <filter-audio ref="r5" name="Audio Crossfade"/>  
     </transition>  
    </spine>  

“我认为使用NSXMLParser将是最好的选择,所以我有一个像这样的:”

代码语言:javascript
复制
NSXMLParser *new_parser = [[NSXMLParser alloc] initWithData:[NSData dataWithBytes:[[theXMLElement stringValue] UTF8String] length:[theXMLElement stringValue].length]];  
[new_parser setDelegate:self];  
BOOL parse_success = [new_parser parse];

但它失败了,因为元素的-stringValue返回一个长度为零的字符串(用NSLog输出检查)。那么,我应该如何设置才能只解析较大NSXMLDocument的上述元素(或类似元素)呢?

EN

回答 1

Stack Overflow用户

发布于 2015-10-09 00:30:56

我应该使用-XMLString来获取解析器的有效字符串。我在什么地方见过-stringValue,它已经卡在我的脑海里了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33011359

复制
相关文章

相似问题

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