我想在Marklogic服務器上獲得上傳文件的文件擴展名。我知道如何獲取文件名。但是,這會給文件名加上像new.txt一樣的擴展名。但我只想要擴展名不是完整的文件名。我怎樣才能得到文件擴展名?如何在Marklogic Server中獲取文件擴展名?
0
A
回答
2
有很多從文件名獲取文件擴展名的方法。例如,你可以使用functx:substring-after-last($filename, '.')
或其他方法(fn:substring-after)
獲得點後的子串。請參閱:xqueryfunctions.com
P.S. fn:tokenize($filename, '\.')[fn:last()]
1
我經常使用下面的替換:
fn:replace("c:\a\b\c.d.e.txt", '^(.*\.)?([^\.]+)$', '$2')
但使用functx是一個好主意太,由安德魯建議。 functx庫的副本作爲MarkLogic後期版本的一部分進行分發。只需添加下面的導入,讓他們提供:
import module namespace functx = "http://www.functx.com" at "/MarkLogic/functx/functx-1.0-nodoc-2007-01.xqy";
HTH!
0
只爲多種,但其產生的延伸:)另一種表達:
reversed-string(substring-before(reversed-string($filePath), '.'))
其中reversed-string($s)
可以被定義爲:
codepoints-to-string(reverse(string-to-code-points($s)))
所以用替換整個表達式是:
codepoints-to-string(
reverse(
string-to-codepoints(
substring-before(codepoints-to-string(reverse(string-to-codepoints($filePath))),
'.')
)
)
)
相關問題
- 1. 獲取文件擴展名
- 2. Android - 如何獲取文件擴展名?
- 3. Angularjs如何獲取文件擴展名?
- 4. 在java中獲取文件擴展名
- 5. 如何從沒有擴展名的文件名獲取文件擴展名?
- 6. 如何在Marklogic Server中獲取上傳的文檔名稱?
- 7. 如何在MySQL中獲取文件名的擴展名?
- 8. 如何獲取Google文檔中文件的文件擴展名?
- 9. 如何在C#Windows中獲取文件大小,文件名,文件擴展名?
- 10. 獲取除擴展名外沒有擴展名的文件名
- 11. 如何從URL中獲取文件名和擴展名?
- 12. 如何從目錄中獲取文件名和擴展名
- 13. 獲取文件的擴展名,但無法獲取文件名
- 14. 如何在windows中獲取文件的擴展名
- 15. 如何在Jquery中獲取文件的擴展名?
- 16. 如何在Django中獲取文件的擴展名?
- 17. 如何在PHP中獲取文件擴展名?
- 18. 如何在shell腳本中獲取文件的擴展名
- 19. 如何在Android中獲取文件擴展名?
- 20. 在Haskell中,如何獲取沒有文件擴展名的文件名?
- 21. Android:如何在文件名中使用多個點獲取文件擴展名?
- 22. Smarty獲取文件擴展名
- 23. 獲取文件擴展名C
- 24. 獲取文件的擴展名(編輯)
- 25. 獲取擴展類的文件名
- 26. 使用preg_replace獲取文件擴展名
- 27. Node.js獲取文件擴展名
- 28. Primefaces FileUpload獲取文件擴展名
- 29. Nodejs獲取文件擴展名
- 30. 獲取文件擴展名C錯誤
不應該是'fn:tokenize($ filename,'\。')[fn:last()]'? – grtjn
是的,你是對的。第二個參數採用正則表達式。謝謝。 –
謝謝@AndrewOrlov –