0

以下のようなドキュメントがあります。xPath 式を使用して data-ext に到達できます

/html/body/ol/li[1]/ol/li[1]/@data-ext 

our_id の値を取得する方法はありますか?

string(/html/body/ol/li[1]/ol/li[1]/@data-ext)または、別のjsonとして解析する必要があります。

<!DOCTYPE html>
<html>
  <head>
    <title>My Title</title>
  </head>
  <body>
    <h1>Contents</h1>
    <ol>
      <li data-ext='{"our_id":"45578107356868511506172578", "our_number":"1"}'>
        <span>Objective 1</span>
      </li>
    </ol> 
  </body>
</html>
4

2 に答える 2

1

特に使用可能なツールによっては、JSON を個別に処理する方がクリーンなアプローチになる場合があります。substring-before()ただし、XPath のみを使用して取得するには、との組み合わせを使用できますsubstring-after()

substring-before(substring-after(string(/html/body/ol/li[1]/@data-ext), 'our_id":"'), '", "our_number"')

これらの関数は、引数に基づいて文字列の一部を返します。詳細と参照については、名前をクリックしてください。

于 2013-09-17T13:58:16.950 に答える
-1

いいえ、xpath と json は別の概念です。

xpath を使用して json を解析しようとすると、エスケープ シーケンスに関する問題が発生する可能性があります。{"\"our_id":"12345", "our_id":"45578107356868511506172578",...

これが、xpath と json を意図された方法でのみ使用する必要がある理由です。もう 1 つの問題は、xpath が完全にチューリングされていないことです。安全なパーサーを作成できるかどうかはわかりませんが、作成したとしても非常に高速になるとは思えません。

于 2013-09-17T13:50:03.763 に答える