gpt4 book ai didi

iphone - 解析时跳过 XML 的某些内容

转载 作者:行者123 更新时间:2023-11-29 13:17:29 26 4
gpt4 key购买 nike

您好,我有一个 XMl 响应字符串,其中包含很多无用的元素,但正如我们所知,NSXMLParser 的设计方式是它访问每个元素,这个过程真的会降低我的速度。有什么办法可以跳过一些元素。下面是我的 XML 字符串,我想跳过 xs:schema 元素。

<DataSet xmlns="http://www.sample.com/researchportal/">
<xs:schema xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" id="NewDataSet">
<xs:element name="NewDataSet" msdata:IsDataSet="true" msdata:UseCurrentLocale="true">
<xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element name="Table1">
<xs:complexType>
<xs:sequence>
<xs:element name="state" type="xs:string" minOccurs="0"/>
<xs:element name="userid" type="xs:string" minOccurs="0"/>
<xs:element name="message" type="xs:string" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:choice>
</xs:complexType>
</xs:element>
</xs:schema>
<diffgr:diffgram xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" xmlns:diffgr="urn:schemas-microsoft-com:xml-diffgram-v1">
<NewDataSet xmlns="">
<Table1 diffgr:id="Table11" msdata:rowOrder="0" diffgr:hasChanges="inserted">
<state>True</state>
<userid>16</userid>
<message/>
</Table1>
</NewDataSet>
</diffgr:diffgram>
</DataSet>

最佳答案

我发现一种方法可能不是最好的方法,但它是我获得快速解析的一些方法。

NSData * fileData = [[NSData alloc] initWithContentsOfURL:url];
xmlParser = [[NSXMLParser alloc] initWithData:[self removeElements:fileData]];
[xmlParser setDelegate:objUtil];
success = [xmlParser parse];

我已经创建了一个方法 removeElements:fileData,它接受 NSData 并返回相同的结果,并返回所需的结果(通过修剪 xml 字符串)。

- (NSData*) removeElements :(NSData*)data
{
NSMutableString * strFromData = [[NSMutableString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSRange startRange = [strFromData rangeOfString:@"<xs:schema"];
NSRange endRange = [strFromData rangeOfString:@"<diffgr"];
[strFromData replaceCharactersInRange: NSMakeRange(startRange.location,endRange.location - startRange.location) withString: @""];
NSLog(@"%@",strFromData);
NSData *retData = [strFromData dataUsingEncoding:NSUTF8StringEncoding];
return retData;
}

感谢所有在百忙中抽出时间帮助我的 friend :)

关于iphone - 解析时跳过 XML 的某些内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15338178/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com