以文本方式查看主题 - 中文XML论坛 - 专业的XML技术讨论区 (http://bbs.xml.org.cn/index.asp) -- 『 XSL/XSLT/XSL-FO/CSS 』 (http://bbs.xml.org.cn/list.asp?boardid=8) ---- 在xsl中如何对rowset data field中的字符型变量进行操作? (http://bbs.xml.org.cn/dispbbs.asp?boardid=8&rootid=&id=76428) |
-- 作者:whlxy -- 发布时间:8/19/2009 11:24:00 AM -- 在xsl中如何对rowset data field中的字符型变量进行操作? 我对xsl不是很熟悉. 这个问题的引出是这样的 microsoft sharepoint 中有两个列表,其中@userdetail是第一个列表的datafield ,包含了用户名以及用户的其他信息@username 是第二个列表的datafield,包含了用户名. sharepoint系统自动生成了诸如 rs:data/z:row/[@userdetail=$parentrow/@username]" 这样的xslt表达式.意思是当两个列表的@userdetail和@username datafield的值相等时,则进行一些操作. 我的问题是现在@userdetail中的值是诸如"好人张三科长"这样的,@username中的值是"张三"这样的,如果按照系统自动生成的rs:data/z:row/[@userdetail=$parentrow/[@username]"来计算,则xslt不能正常返回我需要的结果. 现在我想通过某种方式的字符运算,把"好人张三科长",计算成"张三",然后再运行rs:data/z:row/[@userdetail=$parentrow/[@username]",这样就能返回我的结果了, 请告诉我我该如何计算呢
|
-- 作者:Qr -- 发布时间:8/19/2009 1:21:00 PM -- contains(@userdetail,@username) 如果 @userdetail=好人张三科长,@username=张三,那么contains()返回true 如果 @userdetail=好人张三科长,@username=李四,那么contains()返回false 就是说,contains的第二个参数包含在第一个参数中,那么返回true否则返回false |
-- 作者:whlxy -- 发布时间:8/19/2009 2:00:00 PM --
问题的关键是是从xslt语法上来说,是不允许对@username这样的datafield直接进行contains sustring-befor after 这样的函数操作,操作之后是包错的,怪我没说清楚,请问如何解决??领导,可能是我说的不是很清楚.contains,sutstring-before,substringafter函数我都知道,"好人张三科长"只是我的一个例子,在实际的数据中,他还可能是"好人李四科长"
|
-- 作者:hexun831012 -- 发布时间:8/19/2009 3:32:00 PM -- rs:data/z:row/[@userdetail=$parentrow/substring-before(@username,'</A')] !!! rs:data/z:row/[@userdetail = substring-before($parentrow/@username, '</A')] |
-- 作者:whlxy -- 发布时间:8/20/2009 8:43:00 AM --
谢谢领导!通过了!! |
-- 作者:hexun831012 -- 发布时间:8/20/2009 5:29:00 PM --
小菜,你还没习惯Xpath语法 |
-- 作者:hjx_221 -- 发布时间:8/21/2009 2:11:00 PM -- 学习一下 !!!!!! |
W 3 C h i n a ( since 2003 ) 旗 下 站 点 苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》 |
62.500ms |