2008-09-15 22 views
14

URL üzerinden XSLT stil için parametre geçirmek için XML (Google Chrome veya IE7) mümkündür dönüştürmek için bir tarayıcı kullanarak?XML dönüştürmek için bir tarayıcı kullanırken bir URL üzerinden XSLT'ye bir parametre iletmek mümkün mü?

örnek:

data.xml

<?xml version="1.0" encoding="UTF-8"?> 
<?xml-stylesheet type="text/xsl" href="sample.xsl"?> 
<root> 
    <document type="resume"> 
     <author>John Doe</author> 
    </document> 
    <document type="novella"> 
     <author>Jane Doe</author> 
    </document> 
</root> 

, dönüştürme istemci-olsa bile, XSLT sunucu-tarafı üretebilir

<?xml version="1.0" encoding="UTF-8"?> 
<xsl:stylesheet 
    version="1.0" 
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
    xmlns:fo="http://www.w3.org/1999/XSL/Format"> 

    <xsl:output method="html" /> 
    <xsl:template match="/"> 
    <xsl:param name="doctype" /> 
    <html> 
     <head> 
      <title>List of <xsl:value-of select="$doctype" /></title> 
     </head> 
     <body> 
      <xsl:for-each select="//document[@type = $doctype]"> 
       <p><xsl:value-of select="author" /></p> 
      </xsl:for-each> 
     </body> 
    </html> 
</<xsl:stylesheet> 

cevap

3

örnek.xsl yan.

Bu parametreyi işlemek için bir dinamik komut dosyası kullanmanızı sağlar.

Örneğin, belirtilebilir:

<?xml-stylesheet type="text/xsl"href="/myscript.cfm/sample.xsl?paramter=something" ?> 

Sonra myscript.cfm içinde çıkış XSL dosyası, ancak dinamik senaryo sorgu dizesi parametresi işleme ile (bu değişiklik olur hangi kodlama dili size bağlı) kullanın.

+4

Part sadece olası istemci tarafı ise şu şekildedir:

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

Ve JavaScript işlevi nedir? – user9547

6

Maalesef hayır - istemci tarafında yalnızca XSLT parametre geçemez. Web tarayıcısı, işlem talimatlarını XML'den alır; ve doğrudan XSLT ile dönüştürür.


querystring URL yoluyla değerleri geçirmek ve daha sonra JavaScript kullanarak dinamik onları okumak mümkündür. Ancak, bunlar XSLT'de (XPath ifadeleri) - tarayıcı zaten XML/XSLT'yi dönüştürdüğü için kullanılamaz. Bunlar sadece işlenen HTML çıktısında kullanılabilir.

6

Sadece XML kaynak dosyasına bir özellik olarak parametre eklemek ve stil sayfasıyla bir attibute olarak kullanabilirsiniz. Sorunun iki olurdu

//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"; 
    } 
} 
İlgili konular