我有一个NSXMLDocument (一个FCPX导出的.fcpxml)的元素,我想遍历它,而不是先获取孩子,然后再获取嵌套的孩子,等等:
<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 & 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 & Out)"/>
<param name="Ease Amount" key="51" value="0"/>
</filter-video>
<filter-audio ref="r5" name="Audio Crossfade"/>
</transition>
</spine> “我认为使用NSXMLParser将是最好的选择,所以我有一个像这样的:”
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的上述元素(或类似元素)呢?
发布于 2015-10-09 00:30:56
我应该使用-XMLString来获取解析器的有效字符串。我在什么地方见过-stringValue,它已经卡在我的脑海里了。
https://stackoverflow.com/questions/33011359
复制相似问题