TFHppleの使用に問題があるため、ここにあります:次の行を解析したいと思います:
<div class=\"head\" style=\"height: 69.89px; line-height: 69.89px;\">
<div class=\"cell editable\" style=\"width: 135px;\"contenteditable=\"true\">
<p> 1</p>
</div>
<div class=\"cell\" style=\"width: 135px;\" contenteditable=\"false\">
<p>2</p>
</div>
</div>
<div style=\"height: 69.89px; line-height: 69.89px;\" class=\"head\">
<div class=\"cell\" style=\"width: 135px; text-align: left;\"contenteditable=\"false\">
<p>3 </p>
</div>
<div class=\"cell\" style=\"width: 135px;\" contenteditable=\"false\">
<p>4</p>
</div>
</div>
<div style=\"height: 69.89px; line-height: 69.89px;\" class=\"\">
<div class=\"cell\" style=\"width: 135px;\" contenteditable=\"false\">
<p>5</p>
</div>
<div class=\"cell\" style=\"width: 135px;\" contenteditable=\"false\">
<p>6</p>
</div>
</div>
div
今のところ、 「要素」の最初のレベル (適切な用語がわかりません) を配列に入れたいと思います。/div
だから私は単にメソッドにxPathとして与えることでそれをやろうとしましたsearchWithXPathQuery
が、何も見つかりません。
私の2番目の解決策は、この種のパスを使用してみることでした://div[@class=\"head\"]
しかし、許可することもでき[@class=\"\"]
ますが、それが可能かどうかさえわかりません。(要素がデータ内と同じ順序で配列内にある必要があるため、そうしたいと思います)
これが私の質問です。TFHpple が動作しない特定の理由はあり/div
ますか? の最初のレベルだけを取得する方法がない場合div
、xPath (ここでは属性class
) を使用して属性の値に述語を作成することは可能ですか? (そしてどうやって?私は今かなり探しましたが、何も見つかりませんでした)
ご協力いただきありがとうございます。
PS:それが役立つ場合、データを試して解析するために使用するコードは次のとおりです。最初に文字列に含まれていますself.material.Text
:
NSData * data = [self.material.Text dataUsingEncoding:NSUnicodeStringEncoding];
TFHpple * tableParser = [TFHpple hppleWithHTMLData:data];
NSString * firstXPath = @"/div";
NSArray<TFHppleElement *> * tableHeader = [tableParser searchWithXPathQuery:firstXPath];
NSLog(@"We found : %d", tableHeader.count);