2016-04-19 19 views
-7

これは抽出したいHTMLです。Xpathで文字列の一部を抽出する

<input type="hidden" id="continueTo" name="continueTo" value="/oauth2/authz/?response_type=code&client_id=localoauth20&redirect_uri=http%3A%2F%2Fbg-sip-activemq%3A8080%2Fjbpm-console%2Foauth20Callback&state=72a37ba7-2033-47f4-8e7e-69a207406dfb" /> 

私は72a37ba7-2033-47f4-8e7e-69a207406dfb

+0

/(これまでのところ、あなたの現在のコードをあなたの努力を投稿正規表現)ので、私たちはあなたを助けることができます。 – dquijada

+1

ちょうどフレンドリーなヒントですが、あなたはこのページを読むことができます:[How-To-Ask Guide](https://stackoverflow.com/help/how-to-ask)可能な限り簡単に答えることができます。あなたが抱えている問題を修正するためにあなたがした努力と、それらの修正を試みたときに何が起こったのかを必ず含めてください。ショーコードとエラーメッセージも忘れないでください! –

+0

[* XSLT:文字列での最後の出現箇所の検索*](http://stackoverflow.com/questions/3141847/xslt-finding-last-occurance-in-a-string)もご覧ください。 –

答えて

1

XPATHすなわち唯一の状態値を抽出するためのXpathを必要とする:

//input[@id="continueTo"]/@value 

それはID continueToとノードinputの値を取得します。その後、Regexで最初に処理して最終結果を得る必要があります。

正規表現:

`[^=]+$` 

$は、文字列の終わりを意味しています。それは=ではない文字列の最後にすべてを取得します。

2

こんにちはあなただけのXPathにはないそのサブ文字列を使用して属性の値を取得することができますが、あなたは、サブ文字列を取得したい場合、これはあなたのクエリ役に立てば幸い

String AttributeValue = driver.findElement(By.id("continueTo")).getAttribute("value"); 
System.out.println("Value of the attribute value is : " + AttributeValue); 

    // now as you want 72a37ba7-2033-47f4-8e7e-69a207406dfb this substring of the vale attribute 
    // then plz apply java split as below 
    String value = "/oauth2/authz/?response_type=code&client_id=localoauth20&redirect_uri=http%3A%2F%2Fbg-sip-activemq%3A8080%2Fjbpm-console%2Foauth20Callback&state=72a37ba7-2033-47f4-8e7e-69a207406dfb"; 
    String [] myValue = value.split("="); 
    System.out.println(myValue[0]); // will print /oauth2/authz/?response_type 
    System.out.println(myValue[1]); // will print code&client_id 
    System.out.println(myValue[2]); // will print localoauth20&redirect_uri 
    System.out.println(myValue[3]); // will print http%3A%2F%2Fbg-sip-activemq%3A8080%2Fjbpm-console%2Foauth20Callback&state 
    System.out.println(myValue[4]); // will print 72a37ba7-2033-47f4-8e7e-69a207406dfb 

下のようにそれを行ってください

1
コードの下

使用: -

String val = driver.findElement(By.xpath("//input[@id='continueTo']/@value")).getText(); 

    String [] myValue = val.split("&state="); 

    System.out.println(myValue[1]); 

が、それはあなたを助けることを願っています:)

関連する問題