2015-12-09 28 views
2

我已啓用XPath 2.0配置synapse.xpath.dom.failover.enabled=truesynapse.properties但仍無法獲取字符串填充完成。有沒有什麼表達來實現它?在wso2 ESB中是否有任何XPath表達式用於字符串填充?

編輯:

特定字符串的長度必須是10個字符,如果是比它更小的,我們必須用特殊字符「%」填充它。

例如,輸入= 'WSO2',填充後它應該是 'WSO2 %%%%%%'

預先感謝

+0

你試過的xpath是什麼?你在這裏意味着什麼*完全由字符串填充? (樣本字符串輸入和相應的預期輸出將是有用的) – har07

+0

嗨,添加樣本請求和預期的字符串填充後。我試過fn:string-pad(),但它在wso2中不起作用。 –

+0

在任何版本的XPath中都沒有定義fn:string-pad()函數。 –

回答

3

這可以使用XPath 1.0等實現

substring(concat('WSO2', '%%%%%%%%%%'), 1, 10) 

以上的XPath基本工作原理是concatenatin:那麼,假設"WSO2"將在實際執行動態輸入的字符串替換g字符串,將10個特定的填充字符添加到原始輸入字符串中,然後對結果進行子字符串得到前10個字符。 XSL left-right justification with Padding

爲了把這個更通用的公式中:

substring(concat('input_string', '%%%%....'), 1, n) 
  • input_string:字符串到填充操作將施加
  • %:字符用於填充在以下XSL問題發現這招,重複n
  • n:固定輸出字符串中預期的字符數
+0

它的工作,謝謝:) –

1

從@ har07的解決方案是好的,如果你對n的值合理上限,但如果你不這樣做,你可以創建一個使用

XPath 3.0: string-join((1 to $n)!"%") 

XPath 2.0: string-join(for $x in 1 to $n return "%", "") 
含「%」重複$ n次的字符串
+0

嗨邁克爾,請你請解釋第二個xpath上面,請。 – Vincent

+1

'1到$ n'產生一個數字序列。 '在$ 1到$ n中返回$ x返回「%」'產生一串$ n字符串,每個字符串都是字符串「%」。 string-join()將一串字符串連接成單個字符串,第二個參數可選地提供分隔符。 –

相關問題