使用NSXMLParser从.tetml获取值很困难

时间:2011-03-27 06:42:32

标签: objective-c cocoa-touch ios nsxmlparser

我正在尝试解析.tetml扩展名文件。为此我使用NSXMLParserDelegate方法。

- (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName

didEndElement给出了确切的结果,而namespaceURIqName给出了nil。我不明白其确切原因。我的文件包含:

<Word><Text>ËÒ</Text><Box llx="198.00" lly="408.48" urx="244.90" ury="436.56"><Glyph font="F1" size="40.08" x="198.00" y="408.48" width="26.16">Ë</Glyph><Glyph font="F1" size="28.08" x="224.16" y="408.48" width="20.74">Ò</Glyph></Box></Word>

任何人都可以告诉我发生这种情况的原因,谁能告诉我如何获得标签价值?提前谢谢。

1 个答案:

答案 0 :(得分:1)

好吧,我在xml文件中没有看到任何名称空间。如果您确定在NSXMLParser实例上设置了此设置:

- (void)setShouldProcessNamespaces:YES

...你的xml文件看起来像这样:

<n:Word xmlns:n="http://www.n.com/" xmlns:m="http://www.m.com">
<n:Text>ËÒ</n:Text>
<m:Box llx="198.00" lly="408.48" urx="244.90" ury="436.56">
    <m:Glyph font="F1" size="40.08" x="198.00" y="408.48" width="26.16">Ë</m:Glyph>
    <m:Glyph font="F1" size="28.08" x="224.16" y="408.48" width="20.74">Ò</m:Glyph>
</m:Box>
</n:Word>

你会看到 - [MyParserDelegate解析器:didEndElement:namespaceURI:qualifiedName:]类型委托方法用

调用
elementName = Text
namespaceURI = http://www.n.com/
qualifiedName = n:Text

希望这有帮助。