7

次のHTMLを解析するにはどうすればよいですか

<body>
<span style="font-size:11px">12345</span>
<a>Hello<a>
</body>

www.testtest.com から style="font-size:11px" を使用して "span" からデータ "12345" を取得したいのですが、そのデータだけが必要で、他には何も必要ありません。

どうすればこれを達成できますか?

4

2 に答える 2

3

編集: Qt 5.6 リリースのブログ投稿から:

5.6 では、Qt WebKit と Qt Quick 1 はサポートされなくなり、リリースから削除されます。これらのモジュールのソース コードは引き続き利用できます。

そのため、Qt 5.6 の時点で (ソースをコンパイルする意思がない限り)QtWebKitは利用できなくなりました。5.6 よりも古い Qt リリースを使用していて、コンパイルしても構わないと思っている場合QtWebKit、これは役立つかもしれません。それ以外の場合、この回答は無効になります


ユースケースについての説明が不完全であるため、何をする必要があるかを正確に伝えるのは困難です。ただし、手続きには2つの方法があります。

QtWebKit

そのモジュールの他の機能がすでに必要な場合は、これにより依存関係がさらに発生することはなく、使用するのに最も便利です。

https://doc.qt.io/archives/qt-5.5/qwebelement.htmlを取得する必要があります

HTML で最初の「span」要素を見つけると、それが表示されます。

https://doc.qt.io/archives/qt-5.5/qwebframe.html#findFirstElement

次に、対応する QWebElement メソッドを使用して、その要素のテキストを簡単に取得できます。たとえば、これを使用して属性値を取得できます。

https://doc.qt.io/archives/qt-5.5/qwebelement.html#attribute

...しかし、ドキュメントなどでわかるように、属性名をリクエストすることもできます。

これは、12345値を取得する方法です。

https://doc.qt.io/archives/qt-5.5/qwebelement.html#toPlainText

QtCore の XML パーサー

ソフトウェアに Webkit が必要なく、QWebKit を使用する必要がある Web から直接ではなく、別の方法で html データを取得する場合は、QtCore で利用可能な xml パーサーを使用することをお勧めします。QtWebKit からの他の依存関係がない場合でも、この追加の依存関係がユースケースで問題を引き起こさない場合があります。あなたの説明に基づいて判断するのは難しいです。確かに、HTML 用に設計されている Webkit ベースのソリューションと比較すると、それほど便利ではありませんが、これはあまり便利ではありません。

避ける必要があるのは QtXmlPatterns です。これは現在メンテナンスされていないソフトウェアであり、どちらの方法でもコードに追加の依存関係が導入されます.

于 2013-09-07T21:16:46.960 に答える