生活随笔
收集整理的這篇文章主要介紹了
XPath函数——字符串函数
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
????? 字符串函數主要用來處理字符串。字符串函數主要包括以下:concat(),contains(),normalize-space(),substing(),substring-before(),subsring-after(),translate().
????? 1、concat()
????? concat()函數用于串連多個字符串。
????? 簡單示例:
????? xml:
<?xml version="1.0" encoding="UTF-8"?>
< root >
< e id =" 1 " > st </ e >
< e id =" 2 " > nd </ e >
< e id =" 3 " > rd </ e >
</ root > ????? xslt:
<?xml version="1.0" encoding="UTF-8"?>
< xsl:stylesheet version =" 1.0 " xmlns:xsl =" http://www.w3.org/1999/XSL/Transform " >
< xsl:output method =" text " version =" 1.0 " encoding =" gb2312 " indent =" yes " />
< xsl:template match =" /root " >
< xsl:for-each select =" e " >
< xsl:value-of select =" concat(@id,.,'
') " />
</ xsl:for-each >
</ xsl:template >
</ xsl:stylesheet > ????? 結果:
1st
2nd
3rd ??
????? 2、contains()
????? contains(str1,str2)函數用來判斷str2是否是第一個字符串的一部分。
????? 簡單示例:
????? xml:
<?xml version="1.0" encoding="UTF-8"?>
< books >
< book > XML </ book >
< book > XSLT </ book >
< book > XPath </ book >
< book > C# </ book >
</ books > ???? xslt:
<?xml version="1.0" encoding="UTF-8"?>
< xsl:stylesheet version =" 1.0 " xmlns:xsl =" http://www.w3.org/1999/XSL/Transform " >
< xsl:output method =" xml " version =" 1.0 " encoding =" gb2312 " indent =" yes " />
< xsl:template match =" /books " >
< books >
< xsl:for-each select =" book " >
< xsl:if test =" contains(.,'X') " >
< xsl:copy >
< xsl:value-of select =" . " />
</ xsl:copy >
</ xsl:if >
</ xsl:for-each >
</ books >
</ xsl:template >
</ xsl:stylesheet > ???? 結果:
<?xml version="1.0" encoding="gb2312"?> < books > < book > XML </ book >
< book > XSLT </ book >
< book > XPath </ book >
</ books > ?
??? 3、normalize-space()
??? normalize-space()用來將一個字符串的頭部和尾部的空白字符刪除,如果字符串中間含有多個連續的空白字符,將用一個空格來代替。
??? 簡單示例:
??? xml:
<?xml version="1.0" encoding="UTF-8"?>
< article >
< title > When The Wind Blows </ title >
< paragraph >
When you have get ready for everything ,you could
Sleep though the wind blows
</ paragraph >
< paragraph >
That means you should do your best on your work and fear
nothing
</ paragraph >
</ article > ??? xslt:
<?xml version="1.0" encoding="UTF-8"?>
< xsl:stylesheet version =" 1.0 " xmlns:xsl =" http://www.w3.org/1999/XSL/Transform " >
< xsl:output method =" xml " version =" 1.0 " encoding =" gb2312 " indent =" yes " />
< xsl:template match =" /books " >
< xsl:apply-templates select =" article " />
</ xsl:template >
< xsl:template match =" article " >
< xsl:copy >
< xsl:apply-templates select =" * " />
</ xsl:copy >
</ xsl:template >
< xsl:template match =" * " >
< xsl:copy >
< xsl:value-of select =" normalize-space() " />
</ xsl:copy >
</ xsl:template >
</ xsl:stylesheet > ???? 結果:
<?xml version="1.0" encoding="gb2312"?>
< article >
< title > When The Wind Blows </ title >
< paragraph > When you have get ready for everything ,you could Sleep though the wind blows </ paragraph >
< paragraph > That means you should do your best on your work and fear nothing </ paragraph >
</ article > ?
??? 4、starts-with()
??? start-with(string,startr)函數用來判斷string是否以startstr開頭。
??? 簡單示例:
??? xml:
<?xml version="1.0" encoding="UTF-8"?>
< books >
< book > XML </ book >
< book > XSLT </ book >
< book > XPath </ book >
< book > C# </ book >
</ books > ??? xslt:
顯示行號 復制代碼 ? <?xml version="1.0" encoding="UTF-8"?>
< xsl:stylesheet version =" 1.0 " xmlns:xsl =" http://www.w3.org/1999/XSL/Transform " >
< xsl:output method =" xml " version =" 1.0 " encoding =" gb2312 " indent =" yes " />
< xsl:template match =" /books " >
< xsl:copy >
< xsl:for-each select =" book " >
< xsl:if test =" starts-with(.,'X') " >
< xsl:copy-of select =" . " />
</ xsl:if >
</ xsl:for-each >
</ xsl:copy >
</ xsl:template >
</ xsl:stylesheet > ???? 結果:
<?xml version="1.0" encoding="gb2312"?> < books > < book > XML </ book >
< book > XSLT </ book >
< book > XPath </ book >
</ books > ?????
??? 5、string-length()
??? string-length(string)函數用來返回參數string的長度,如果參數string為缺省,將返回上下文節點的字符串長度。
?
??? 6、substring()
??? substring(string,number,length)函數用來截取字符串。參數string用于指定要截取的字符串;參數number用于指定開始位置;參數length用于指定截取字符串的長度。如果缺少length參數將從開始位置number一直到截取字符串的長度
??? 簡單示例:
??? xml:
<?xml version="1.0" encoding="UTF-8"?>
< root >
< text > 123456789ABCDEF </ text >
</ root > ???? xslt:
<?xml version="1.0" encoding="UTF-8"?>
< xsl:stylesheet version =" 1.0 " xmlns:xsl =" http://www.w3.org/1999/XSL/Transform " >
< xsl:output method =" text " version =" 1.0 " encoding =" gb2312 " indent =" yes " />
< xsl:template match =" /root " >
< xsl:value-of select =" substring(text,1,5) " />
< xsl:text > 
 </ xsl:text >
< xsl:value-of select =" substring(text,1) " />
< xsl:text > 
 </ xsl:text >
< xsl:value-of select =" substring(text,1,string-length(text)) " />
</ xsl:template >
</ xsl:stylesheet > ??? 結果:
12345
123456789ABCDEF
123456789ABCDEF ?
??? 7、substring-before()
??? substring-before(str1,str2)函數用于返回字符串str1中位于字符串str2之前的部分。
??? 簡單示例:
??? xml:
<?xml version="1.0" encoding="UTF-8"?>
< datetime >
< date > 2010-01-17 </ date >
< time > 22:49:30 </ time >
</ datetime > ???? xslt:
<?xml version="1.0" encoding="UTF-8"?>
< xsl:stylesheet version =" 1.0 " xmlns:xsl =" http://www.w3.org/1999/XSL/Transform " >
< xsl:output method =" text " version =" 1.0 " encoding =" gb2312 " indent =" yes " />
< xsl:template match =" /datetime " >
< xsl:apply-templates select =" * " />
</ xsl:template >
< xsl:template match =" date " >
< xsl:value-of select =" concat(substring-before(.,'-'),'年') " />
</ xsl:template >
< xsl:template match =" time " >
< xsl:value-of select =" concat(substring-before(.,':'),'時') " />
</ xsl:template >
</ xsl:stylesheet > ???? 結果:
2010年22時 ?
??? 8、substring-after()
??? substring-after(str1,str2)函數跟substring-before類似,substring-after0返回字符串str1中位于字符串str2之后的部分。
??? 簡單示例:
??? xml:
<?xml version="1.0" encoding="UTF-8"?>
< dir >
< file > a.txt </ file >
< file > t.xml </ file >
< file > t.xslt </ file >
</ dir > ???? xslt:
<?xml version="1.0" encoding="UTF-8"?>
< xsl:stylesheet version =" 1.0 " xmlns:xsl =" http://www.w3.org/1999/XSL/Transform " >
< xsl:output method =" xml " version =" 1.0 " encoding =" gb2312 " indent =" yes " />
< xsl:template match =" /dir " >
< extends >
< xsl:for-each select =" file " >
< extend >
< xsl:value-of select =" substring-after(.,'.') " />
</ extend >
</ xsl:for-each >
</ extends >
</ xsl:template >
</ xsl:stylesheet > ?? 結果:
<?xml version="1.0" encoding="gb2312"?>
< extends >
< extend > txt </ extend >
< extend > xml </ extend >
< extend > xslt </ extend >
</ extends > ?
??? 9、translate()
??? translate(string,replaced_txt,replacement_txt)函數用來替換字符串,替換string中的所有replaced_txt為replacement_txt.
轉載于:https://www.cnblogs.com/zhaozhan/archive/2010/01/17/1650242.html
總結
以上是生活随笔 為你收集整理的XPath函数——字符串函数 的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔 網站內容還不錯,歡迎將生活随笔 推薦給好友。