2017-03-24 5 views
-2

上の要素を分割しますすべて1つの文字列として? parser(_:foundCharacters:)で見つかったすべての文字列を連結する以外に、parser(_:didEndElement:namespaceURI:qualifiedName:)に電話するまで簡単な方法がありますか?XMLParserのは、私はiOSの遊び場(スウィフト3、Xcodeの8.2.1)で、このコードを持っている「ß」文字

+1

「なぜですか?」いくつかの意味を持っています。なぜそれができますか?できること:インターフェイスは明らかに[文書化されています](https://developer.apple.com/reference/foundation/xmlparserdelegate/1412539-parser)そのように動作します。それはなぜそれをするのですか?私はNSXMLParserチームの外の誰も確実に言うことはできませんが、私はそれがASCIIバイトの短冊を簡単に(簡単に、非常に一般的)読み込み、MSBセットでバイトをヒットすると、完全なUTF-8解析を遅らせる必要があります。 – Ssswift

+0

@Ssswift素敵な理論。説明してくれてありがとう、ドキュメントリンクありがとう! –

答えて

0

パーサーがテキストの途切れをどのように壊すかは気にする必要はありません。 didEndElementが到着するまで何度も呼び出されても、テキストを蓄積するようにparser(_:foundCharacters:)を実装するのはあなたのビジネスです。典型的な実装は次のようになります。

func parser(_ parser: XMLParser, foundCharacters string: String) { 
    self.text = self.text + string 
} 

... self.textdidStartElementdidEndElementで管理、プロパティです。

それを見て非常に愚かな方法です。この

周りの簡単な方法があります。あなたが「周りに」道を必要とするものではありません。 foundCharactersを実装する正しい方法があります。それをして、人生で乗り越えてください。

+0

ありがとうございます。 「簡単な方法」とは、私が見落としていたXMLParserの設定があるかどうか疑問に思っていたことです。これは私にとってはこれを処理しますが、あなたが記述した回避策を実装していれば、 –

関連する問題