亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何將變量參數傳遞到XPath表達式中?

如何將變量參數傳遞到XPath表達式中?

天涯盡頭無女友 2020-02-03 12:42:38
我想將參數傳遞到XPath表達式中。(//a/b/c[x=?],myParamForXAttribute)我可以使用XPath 1.0做到這一點嗎?(我嘗試過,string-join但XPath 1.0中沒有)那我該怎么辦呢?我的XML看起來像<a> <b>  <c>   <x>val1</x>   <y>abc</y>  </c>  <c>   <x>val2</x>   <y>abcd</y>  </c></b></a>我想獲得<y>x元素值為的元素值val1我嘗試過,//a/b/c[x='val1']/y但是沒有用。
查看完整描述

3 回答

?
翻過高山走不出你

TA貢獻1875條經驗 獲得超3個贊

這取決于您使用XPath的語言。


在XSLT中:


 "//a/b/c[x=$myParamForXAttribute]"

請注意,與上面的方法不同,下面的三個對XPath注入攻擊開放,決不能與不受控制或不受信任的輸入一起使用。為避免這種情況,請使用您的語言或庫提供的機制來帶外傳遞變量。 [ 信用:查爾斯達菲]


在C#中:


String.Format("//a/b/c[x={0}]", myParamForXAttribute);

在Java中:


String.format("//a/b/c[x=%s]", myParamForXAttribute);

在Python中:


 "//a/b/c[x={}]".format(myParamForXAttribute)


查看完整回答
反對 回復 2020-02-03
?
手掌心

TA貢獻1942條經驗 獲得超3個贊

如果您的XPath庫提供了類似于XSLT的方式來解釋變量的工具,請使用它。由于OP最初并未說明他的語言/圖書館,所以我一般都會回答。許多初學者期望有一個純粹的XPath解決方案來將變量嵌入XPath中,但還沒有。因此,保留此一般答案很有價值。

查看完整回答
反對 回復 2020-02-03
  • 3 回答
  • 0 關注
  • 1056 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號