2017-03-11 7 views
1

以前は、Googleの音声で「div」を使ってSMSコードを抽出することができました。最近、AngularJSを使ってARIAベースのフレームワークに切り替えました。私はどのように私のすべてのSMSコードを含む文字列をWebページから抽出するでしょうか?ここで角度で書かれたウェブページからxpathを使ってテキストを抽出するには?

は、私は私のターゲットのXPathと一緒に使用しているコマンドです:

var search2 = document.evaluate('//*[@id="messaging-view"]/div/md-content/div/gv-conversation-list/md-virtual-repeat-container/div/div[2]/div[1]/div/gv-text-conversation-item/gv-conversation-item/div/div[2]/ng-transclude/gv-conversation-item-detail/gv-annotation/text()', 
    document, null, XPathResult.ANY_TYPE, null); 

Here is the result I see on my Chrome Developer console

答えて

0

Mozilla documentation on XPath in javascriptを見てみましょう。あなたが戻ってきたのはノードイテレータです。これは、おそらくANY_TYPEを指定した場合にXPathクエリの最も一般的な戻り値の型です。あなたのコードを動作させるために、あなたが次の操作を行うことができているよう:

// im putting your query in a variable for readability 
var query = '//*[@id="messaging-view"]/div/md-content/div/gv-conversation-list/md-virtual-repeat-container/div/div[2]/div[1]/div/gv-text-conversation-item/gv-conversation-item/div/div[2]/ng-transclude/gv-conversation-item-detail/gv-annotation/text()'; 
var search2 = document.evaluate(query, document, null, XPathResult.ANY_TYPE, null); 

var thisNode = iterator.iterateNext(); 

while (thisNode) { 
    console.log(thisNode.textContent); // probably will be a text node 
    thisNode = iterator.iterateNext(); 
} 

はまたあなたは、単にそれSTRING_TYPEとしてあなたの結果の型を指定することができます。

// im putting your query in a variable for readability 
var query = '//*[@id="messaging-view"]/div/md-content/div/gv-conversation-list/md-virtual-repeat-container/div/div[2]/div[1]/div/gv-text-conversation-item/gv-conversation-item/div/div[2]/ng-transclude/gv-conversation-item-detail/gv-annotation/text()'; 
var search2 = document.evaluate(query, document, null, XPathResult.STRING_TYPE, null); 

console.log(search2.stringValue); 
+0

私はコンソールでxpathresultを見て、それが言う "のstringValue : [例外:例外TypeError:結果の型が文字列でないXPathResultで:『XPathResult』から『のstringValue』プロパティの読み込みに失敗しました。 remoteFunction(:2:14)] " –

関連する問題