2

私は初めてのXPathユーザーで、これらのさまざまな要素のテキスト値を取得できる必要があります..たとえばtimetitle、など..私はlibxml2Python でモジュールを使用していますが、これまでのところ、必要なテキスト。以下のコードは、要素タグのみを返します..値が必要です..どんな助けでも大歓迎です!

私はこのコードを使用しています:

doc = libxml2.parseDoc(xmlOutput)
result = doc.xpathEval('//*')

次のドキュメントを使用します。

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE SCAN_LIST_OUTPUT SYSTEM "https://qualysapi.qualys.com/api/2.0/fo/sca/scan_list_output.dtd">
<SCAN_LIST_OUTPUT>
<RESPONSE>
<DATETIME>2012-01-22T01:21:53Z</DATETIME>
<SCAN_LIST>
  <SCAN>
    <REF>scan/2343423</REF>
    <TYPE>Scheduled</TYPE>
    <TITLE><![CDATA[customer 1 5/20/2012]]></TITLE>
    <USER_LOGIN>user1</USER_LOGIN>
    <LAUNCH_DATETIME>2012-02-21T04:11:05Z</LAUNCH_DATETIME>
    <STATUS>
      <STATE>Finished</STATE>
    </STATUS>
    <TARGET><![CDATA[13.3.3.2, 13.8.8.10, 13.10.12.60, 13.10.12.11...]]></TARGET>
  </SCAN>
</SCAN_LIST>
</RESPONSE>
</SCAN_LIST_OUTPUT>
4

2 に答える 2

5

getContent()返された各オブジェクトを呼び出してxmlNode、関連するテキストを取得できます。これは再帰的であることに注意してください。libxml2 のテキスト コンテンツに非再帰的にアクセスするには、要素の下にある関連するテキスト ノードを取得し、それを呼び出し.getContent()ます。

lxml.etreeとはいえ、Python libxml2 の代わりに (より高いレベルの Python API、まだ C libxml2 ライブラリに戻っている)を使用すると、これはより簡単になります。その場合はelement.text、関連付けられたコンテンツに文字列としてアクセスするだけです。

于 2012-05-22T01:59:22.430 に答える
1

Mark Pilgrim のDive Into Python 3第 12 章をご覧ください。

この章は、XML の簡単な説明から始まり (一般的な話ですが、Atom Syndication Feed の例を使用します)、次に標準に進み、同じインターフェース (libxml2 に基づく完全な XPATH 1.0) でさらに多くを実装xml.etree.ElementTreeするサード パーティのlxmlに進みます。

于 2012-05-23T07:59:42.650 に答える