当前位置:  开发笔记 > Android > 正文

使用浏览器转换XML时,是否可以通过URL将参数传递给XSLT?

如何解决《使用浏览器转换XML时,是否可以通过URL将参数传递给XSLT?》经验,为你挑选了2个好方法。

使用浏览器转换XML(谷歌浏览器或IE7)时,是否可以通过URL将参数传递给XSLT样式表?

例:

data.xml中




    
        John Doe
    
    
        Jane Doe
    

sample.xsl




    
    
    
    
        
            List of <xsl:value-of select="$doctype" />
        
        
            
                

leekelleher.. 7

不幸的是,没有 - 你不能仅在客户端将参数传递给XSLT.Web浏览器从XML获取处理指令; 并使用XSLT直接转换它.


可以通过查询字符串URL传递值,然后使用JavaScript动态读取它们.但是这些在XSLT(XPath表达式)中不可用 - 因为浏览器已经转换了XML/XSLT.它们只能用于呈现的HTML输出.



1> leekelleher..:

不幸的是,没有 - 你不能仅在客户端将参数传递给XSLT.Web浏览器从XML获取处理指令; 并使用XSLT直接转换它.


可以通过查询字符串URL传递值,然后使用JavaScript动态读取它们.但是这些在XSLT(XPath表达式)中不可用 - 因为浏览器已经转换了XML/XSLT.它们只能用于呈现的HTML输出.



2> Tawani..:

只需将参数作为属性添加到XML源文件中,并将其用作样式表的属性.

xmlDoc.documentElement.setAttribute("myparam",getParameter("myparam"))

JavaScript函数如下:

//Get querystring request paramter in javascript
function getParameter (parameterName ) {

   var queryString = window.top.location.search.substring(1);

   // Add "=" to the parameter name (i.e. parameterName=value)
   var parameterName = parameterName + "=";
   if ( queryString.length > 0 ) {
      // Find the beginning of the string
      begin = queryString.indexOf ( parameterName );
      // If the parameter name is not found, skip it, otherwise return the value
      if ( begin != -1 ) {
         // Add the length (integer) to the beginning
         begin += parameterName.length;
         // Multiple parameters are separated by the "&" sign
         end = queryString.indexOf ( "&" , begin );
      if ( end == -1 ) {
         end = queryString.length
      }
      // Return the string
      return unescape ( queryString.substring ( begin, end ) );
   }
   // Return "null" if no parameter has been found
   return "null";
   }
}

推荐阅读
mobiledu2402851377
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有