如何从以下响应中通过正则表达式或xpath从文本中提取选项值
xpath提取器
//*[@id="form_extsss:fromSerie2"]/option[text()='-DRIVE_ME']/@value
例如:
回复
<?xml version="1.0" encoding="UTF-8"?>
<partial-response>
<changes>
<update id="form_extsss"><![CDATA[<form id="form_extsss" name="form_extsss"
method="post" action="" enctype="multipart/form-data">
<select id="form_extsss:fromSerie2" name="form_extsss:fromSerie2" size="1" onchange="PrimeFaces.ab({s:"form_extsss:fromSerie2",e:"valueChange",p:"form_extsss:fromSerie2",u:"form_extsss"});" style="width:110px"> <option value="-1">Select Series</option>
<option value="1384">-HAD</option>
<option value="630">-DRIVE_ME</option>
</select>
</form>]]></update>
<update id="javax.faces.ViewState"><![CDATA[]]></update>
</changes>
</partial-response>
答案 0 :(得分:0)
<option value="630">
下面的正则表达式可以在正则表达式提取器中使用:-
<option value="(.\d*)">
答案 1 :(得分:0)
由于CDATA仅表示为字符串,因此无法使用xpath
。
但是,如果有xquery可用
let $x := <partial-response>
<changes>
<update id="form_extsss"><![CDATA[<form id="form_extsss" name="form_extsss" method="post" action="" enctype="multipart/form-data">
<select id="form_extsss:fromSerie2" name="form_extsss:fromSerie2" size="1" onchange="PrimeFaces.ab({s:"form_extsss:fromSerie2",e:"valueChange",p:"form_extsss:fromSerie2",u:"form_extsss"});" style="width:110px">
<option value="-1">Select Series</option>
<option value="1384">-HAD</option>
<option value="630">-DRIVE_ME</option>
</select>
</form>]]></update>
<update id="javax.faces.ViewState"><![CDATA[]]></update>
</changes>
</partial-response>
return parse-xml($x/changes/update/text())/form/select/option/@value
答案 2 :(得分:0)