XMLファイルから必要なデータの取得をしようとしています。
以下のような物があるとします。
<name code="8888"> <placeName>東京</placeName> </name>
ここからcode="8888"の8888を取り出したいのですが方法がわかりません。
"東京"を取り出そうとするとXMLParserを使い、以下のコードで取り出すことができています。
// XMLを解析する //XMLファイルから取得する var arrayValues: [String] = [] var Flg = false func loadxml(){ var url_text = "URL" guard let url = URL(string: url_text) else{ print("URLではありません。") return } // インターネット上のXMLを取得し、NSXMLParserに読み込む guard let parser = XMLParser(contentsOf: url) else{ print("エラー?") return } parser.delegate = self; parser.parse() } // XML解析開始時に実行されるメソッド func parserDidStartDocument(_ parser: XMLParser) { print("XML解析開始しました") } // 解析中に要素の開始タグがあったときに実行されるメソッド func parser(_ parser: XMLParser, didStartElement elementName: String, namespaceURI: String?, qualifiedName qName: String?, attributes attributeDict: [String : String]) { print("開始タグ:" + elementName) if elementName == "placeName"{ Flg = true } } // 開始タグと終了タグでくくられたデータがあったときに実行されるメソッド func parser(_ parser: XMLParser, foundCharacters string: String) { print("要素:" + string) if Flg { arrayValues.append(string) Flg = false } } // 解析中に要素の終了タグがあったときに実行されるメソッド func parser(_ parser: XMLParser, didEndElement elementName: String, namespaceURI: String?, qualifiedName qName: String?) { print("終了タグ:" + elementName) } // XML解析終了時に実行されるメソッド func parserDidEndDocument(_ parser: XMLParser) { print("XML解析終了しました") } // 解析中にエラーが発生した時に実行されるメソッド func parser(_ parser: XMLParser, parseErrorOccurred parseError: Error) { print("エラー:" + parseError.localizedDescription) }
しかしこれではタグで挟まれたもの(ここではplaceName)しか取り出すことができません。
<name code="8888">←この部分からcodeである"8888"を取り出そうとするとしたい場合はどうすればいいのでしょうか?
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/10/11 04:39