将XML写回iPhone上的Web服务器

时间:2012-01-26 01:11:35

标签: iphone xml xml-parsing

我正在编写一个iPhone应用程序,用于查找当地酒吧/社交场所的线路信息。在应用程序中,我从Web服务器解析XML文件。以下是XML的结构:

<?xml version="1.0" encoding="UTF-8"?>
<Bars>
    <Bar>Kam's</Bar>
    <Line>10</Line>
    <Bar>Cly's</Bar>
    <Line>10</Line>
    <Bar>Joe's</Bar>
    <Line>10</Line>
    <Bar>The Red Lion</Bar>
</Bars>

然后,此数据将显示在表格视图中,并显示条形图和线条。如果用户选择表中的元素,则会出现uiactionview并请求用户更新该特定栏的行信息。我知道如何接受用户输入。

我遇到的问题,我真的不知道从哪里开始,正在弄清楚如何重写XML并将其放回到Web服务器上的相同位置。有没有人知道一个教程或者可能让我开始这个?

非常感谢。

1 个答案:

答案 0 :(得分:2)

所以我会回答你的直接问题,但我必须提到你发布的内容不是正确的XML。行号应该是Bar节点的属性或子节点。以下任何一种都被认为是正确的:

<?xml version="1.0" encoding="UTF-8"?>
<Bars>
    <Bar line="10">Kam's</Bar>
    <Bar line="10">Cly's</Bar>
    <Bar line="10">Joe's</Bar>
    <Bar line="10">The Red Lion</Bar>
</Bars>

<?xml version="1.0" encoding="UTF-8"?>
<Bars>
    <Bar>
        <name>Kam's</name>
        <line>10</line>
    </Bar>
    <Bar>
        <name>Cly's</name>
        <line>10</line>
    </Bar>
    <Bar>
        <name>Joe's</name>
        <line>10</line>
    </Bar>
    <Bar>
        <name>The Red Lion</name>
        <line>10</line>
    </Bar>
</Bars>

还有更多方法来表示它,但XML规范荣誉节点排序。解析器通常会先排序,但不能保证,因此Line节点可能与错误的Bar相关联。

无论如何,那就是说,你需要一些不同的工具,而且这些细节太多了,无法在答案中写出来,所以我会指出你的文档。

1)要与服务器通信(获取XML或检索它),您可能希望使用NSURLConnection。 Here's Apple's tutorial on it

2)对于解析 XML,Apple只提供SAX parser。对你来说这将是一个陡峭的学习曲线,它也无法编写你需要做的XML。我将引导您this other StackOverflow post,因为它会详细介绍如何找到一个好的第三方XML解析器。

3)如果您不知道如何设置可以提供XML文档的服务器,并接受POSTed XML内容,那么这就是其他蠕虫病毒。我建议你从一个简单的“LAMP”堆栈开始,然后阅读PHP。

干杯!