0

![我尝试使用 Xcode 读取 xml 文件,但它以字符串形式给出响应,xml 将显示如下图所示,它给出 < 和 > 代表 < 和 >][1]

我正在尝试从服务器读取 mywebservice。我编写了 Web 服务,它在网站中以 xml 格式创建文件。当我使用互联网在网站上检查该文件时,它显示如下:

<NewDataSet>
  <Table>
    <Column1>Audi</Column1>
  </Table>
  <Table>
    <Column1>BMW</Column1>
  </Table>
  <Table>
    <Column1>MINI</Column1>
  </Table>
</NewDataSet>

但是当我通过肥皂调用该文件时,它会给出以下响应:

&lt;NewDataSet&gt;
  &lt;Table&gt;
 &lt;Column1&gt;Audi&lt;/Column1&gt;
 &lt;/Table&gt;
  &lt;Table&gt;
 &lt;Column1&gt;BMW&lt;/Column1&gt;
 &lt;/Table&gt;
 &lt;Table&gt;
 &lt;Column1&gt;MINI&lt;/Column1&gt;
 &lt;/Table&gt;
&lt;/NewDataSet&gt;

但我无法读取像“NewDataSet”这样的标签,因为它会以字符串形式返回响应,而且我是 XML 中的新手,所以请帮助我..我为此使用 Xcode 和 nsmutabledata..!!我尝试了 stringbyReplaceofOccurance,但它没有用 < > 替换 < 和 >。提前致谢。

提前感谢您的帮助。

4

3 回答 3

1

我想,试试 NSXMLParser

这可能对你有帮助......

https://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Classes/NSXMLParser_Class/Reference/Reference.html

于 2012-05-14T18:28:06.013 回答
0

这不是解析问题。检查 Web 服务并确保 xml 标头是:<?xml version="1.0" encoding="utf-8"?>或类似的东西。

于 2012-05-14T18:41:33.413 回答
0

您使用 TouchXML 读取 xml 文件的最佳方式 ....对于 TouchXML,请使用此波纹管链接

http://dblog.com.au/general/iphone-sdk-tutorial-building-an-advanced-rss ...

也在这里,当您得到响应时,您可以使用 TouchXML 像下面这样阅读其他方式.. 即..

- (void) fetchDataSuccessforEvent:(NSMutableData *)data
{
    CXMLDocument *doc = [[[CXMLDocument alloc] initWithData:data options:0 error:nil] autorelease];
    NSArray *nodes = [doc nodesForXPath:@"//Table" error:nil];

    for (CXMLElement *node in nodes) 
    {


        for(int counter = 0; counter < [node childCount]; counter++) 
        {
            if ([[[node childAtIndex:counter] name] isEqualToString:@"Column1"]) 
            {
                NSString *string = [[node childAtIndex:counter] stringValue];
                                NSLog(@"\n\n Title %@",string);

            }

        }


    }

}

如此简单......希望,这对你有帮助...... :)

于 2012-05-14T18:36:28.887 回答