1

Safari Web インスペクタで xpath を使用しようとしています

このローカル XML を使用しています。

<searchable_index>
    <item>John</item>
    <item>Paul</item>
    <item>George</item>
    <item>Ringo</item>
</searchable_index>

ローカル ファイルとして保存し、Chrome を開いて次の操作を行います。

$x('//アイテム')

そして、問題なく動作し、これを返します:

ここに画像の説明を入力

しかし、Safariで同じことをしようとすると、空の配列が返されます

ここに画像の説明を入力

なぜこれが起こっているのか手がかりはありますか?それは私たちを夢中にさせます

YosemiteでSafari 8.0.3(10600.3.18)を使用しています

前もって感謝します。

4

1 に答える 1

1

何らかの理由で、Safari 8 が WebKit のユーザー エージェントとして選択され、入力ファイルに*.xml拡張子がある場合、コンソールに入力された XPath 式はソース ドキュメントを検索せ、その上に生成された HTML を検索します。言って

この XML ファイルには、スタイル情報が関連付けられていないようです。ドキュメントツリーを以下に示します。

itemその HTML ドキュメントには要素がありません。理論的には、ビューを「DOM ツリー」から「ソース コード」に変更できますが、ユーザー エージェントが Safari 8 の場合は機能しません。また、ソース コードへの切り替えを許可するユーザー エージェントでは、パス式は依然として動作しません。

ただし、ファイル拡張子を に変更しても機能します*.html。次に、再試行すると、Xpath 式によってitem要素が検出されます。

ファイル拡張子を変更できない場合、Safari Web Inspector でそれらの要素を見つける方法はないと思います。次に、XPath 式を XML に対して評価する別のツール (プログラミング言語またはフレームワークで使用できるものは何でも) に依存する必要があります。

于 2015-02-03T16:51:57.343 に答える