0

xmlパーサーでhtmlテキストを抽出することは可能ですか?

詳細に説明する:私はこの単純なxmlを持っています

<?xml version="1.0" encoding="iso-8859-1"?>
<eventi>
<evento><id_evento>4553</id_evento><descrizione>Lorem Ipsum<a href='http://www.yea.it/yea.asp' target='_blank'><span class='U'>Vai alla pagina di gioco</span></a></descrizione></evento>
</eventi>

そして、IOS用のアプリを開発している間、私はそれをraptureXMLで解析しています。私がする時

rootXML = [RXMLElement elementFromURL:[NSURL URLWithString:[NSString stringWithFormat:@"%@%@", indXMLdettaglioEvento, idElemento]]];
[rootXML iterateWithRootXPath:@"//evento" usingBlock: ^(RXMLElement *datiXML) {
      NSLog(@"%@",[datiXML child:@"descrizione"].text);;
]}

[datiXML child:@ "descrizione"]。textのnslogは、htmlタグのないテキストを返します。HTML全体を返すようにすることは可能ですか?

4

2 に答える 2

0
 [datiXML child:@"descrizione"]

Lorem Ipsum のテキストを持つ解析済みの XML アイテムを返しますが、それ自体にも子があります! 最初の子は、リンク アンカーの XML アイテムになると思います。

 [[dataiXML child::@"descrizione"] child: @"a"]  => XML item for link
 [[[dataiXML child::@"descrizione"] child: @"a"] child: @"span"] => XML item for span

したがって、xHTML を解析するにはツリー全体をトラバースする必要がありますが、すべてがそこにあることがわかると思います。

以前のコメント投稿者が言ったように、有効な HTML ページの多くは有効な XML ではありません。そして、「機能する」多くの HTML ページは有効ではありません! したがって、これは Web ブラウザーを作成するための良い戦略ではありません。しかし、それはここで行っていることではありません。話しているサービスが XML を提供する場合、XML パーサーを使用してそれを解析することは完全に理にかなっています!

于 2013-03-08T13:27:40.640 に答える
0

XML ドキュメントの解析には、TinyXML、TouchXML などのオープン ソース ライブラリを使用できます。

それ以外の場合は、NSXMLParser を使用して独自のパーサーを作成できます。

お役に立てれば !!!

于 2013-03-08T12:27:43.320 に答える