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

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

無效的 XPath 表達式:需要令牌

無效的 XPath 表達式:需要令牌

慕娘9325324 2022-09-22 20:03:00
我有以下 XML 有效負載:<?xml version="1.0" encoding="UTF-8" ?><product>   <discount class="standard">     <id>123</id>     <beginDate>20181205</beginDate>     <endDate>20181225</endDate>   </discount>   <account>12345</account></product>元素上的屬性可以具有以下值:classdiscountstandardspecialcustomsale我正在嘗試編寫一個 XPath 表達式,如果 具有這些值之一的 elemtn,則該表達式將匹配。我最好的嘗試:product/discountclass/product/discount[@class]/[@class = 'standard' or @class = 'special' or @class = 'customer' or @class = 'sale']生成以下錯誤:InvalidXPathExpression: Invalid xpath: /product/discount[@class]/[@class = 'standard' or @class = 'special' or @class = 'customer' or @class = 'sale']. Reason: javax.xml.xpath.XPathExpressionException: javax.xml.transform.TransformerException: A location step was expected following the '/' or '//' token.任何想法,我的XPath有什么問題?
查看完整描述

2 回答

?
德瑪西亞99

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

如錯誤消息所示,需要后跟一個位置步驟。因此, 不是有效的 xPath 表達式。//[@class = 'standard' ...]

相反,請嘗試:

/product/discount[@class = 'standard' or @class = 'special' or @class = 'customer' or @class = 'sale']



查看完整回答
反對 回復 2022-09-22
?
RISEBY

TA貢獻1856條經驗 獲得超5個贊

只是為了好玩,一個比@jsheeran個更好的XPath 1.0表達式可能是:


/product/discount[@class[.='standard' or .='special' or .='customer' or .='sale']]

如果屬性是唯一的標記,并且某些特殊字符(如 )不能是其中的一部分,則可以使用以下 XPath 1.0“item IN 序列”表達式:class&#x20;


/product

   /discount[

      contains(

         ' standard special customer sale ',

         concat(' ',@class,' ')

      )

   ]


查看完整回答
反對 回復 2022-09-22
  • 2 回答
  • 0 關注
  • 323 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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