我正在编写一个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服务器上的相同位置。有没有人知道一个教程或者可能让我开始这个?
非常感谢。
答案 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。
干杯!