Я бы просто хотел получить «первый подэлемент» из документа XML. Пока все работает, но он всегда сохраняет последний элемент subItem. В основном программа читает прямо через документ XML и останавливается, как только находит, что я хочу. Возможно, я не понимаю, как остановить разбор после того, как он нашел первый элемент. Должен ли я сказать программе остановиться после того, как она найдет первый элемент или добавит их в массив, а затем выберет определенную часть? Любая помощь будет большой.Как получить определенный элемент при обработке XML?
XML Doc
<file>main file
<item>
<subItem>first subitem</subItem>
</item>
</file>
<file>main file
<item>
<subItem>second subitem</subItem>
</item>
</file>
<file>main file
<item>
<subItem>third subitem</subItem>
</item>
</file>
Swift файл
class parseThis {
var strXMLData:String = ""
var currentElement:String = ""
var passData:Bool=false
var passName:Bool=false
var itemNeeded = ""
// set up for parsing
func parser(parser: NSXMLParser, didStartElement elementName: String,
namespaceURI: String?, qualifiedName qName: String?,
attributes attributeDict: [String : String]) {
currentElement=elementName;
if(elementName=="file" || elementName=="item" ||
elementName=="subItem")
{
if(elementName=="subItem"){
passName=false;
}
passData=true;
}
}
func parser(parser: NSXMLParser, didEndElement elementName: String,
namespaceURI: String?, qualifiedName qName: String?) {
currentElement="";
currentElement=elementName;
if(elementName=="file" || elementName=="item" ||
elementName=="subItem"){
if(elementName=="subItem"){
passName=false;
}
passData=false;
}
}
func parser(parser: NSXMLParser, foundCharacters string: String) {
if(passName){
strXMLData=strXMLData+"\n\n"+string
}
if(passData)
{
itemNeeded = string
}