xml
  • xslt
  • 2010-11-22 23 views 2 likes 
    2

    KISA VERSİYONU: ​​(umarım, burada yapmaya çalıştığım şeyi "görebilirsiniz"). XML'den formumdaki bir değere 'çıkış' vermek istiyorum XSL ... Bu bir hata atarXSL değer oluşturma INSIDE bir form

    <input type="text" value='<xsl:value-of select="//return/ControlNo"/>' /> 
    

    ... (aşağıya bakınız)


    UZUN VERSİYON: Ben XML bir sayfa render bir XSL sayfası vardır ... Ben Bu sayfayı 'kapattıklarında' kayıt yapmalılar - ayrı bir sayfa açmayı düşünmüyordum.İnload en kolay yol olacaktı ... NASIL - I ne XSL onUload sayfa çağrısında değerini geçmesi YA ihtiyacı böylece ed, günlük sayfasına bir 'kimlik' geçmek:

    <BODY onUnload('logit.htm?ID= ...xsl:value-of...','logitwindow'); &gt; 
    

    VEYA - ihtiyacım değere sahip bir formu göndermek

    <BODY onUnload(document.form.submit); > 
    <form><input type="hidden" name="id" value=" ...xsl:value-of... "></form> 
    
    javax.xml.transform.TransformerException: eşleşmelidir.org.XML.sax.SAXParseException:

    Bu anlamda .. teşekkürler

    hatası ... javax.xml.transform.TransformerConfigurationException yapar umut Th "input" öğesinin bir öğesiyle ilişkili "value" özniteliğinin değeri '<' karakterini içermemelidir. İstenen yapılandırmayı sağlayan bir Transformer nesnesi oluşturulamıyor. Bu, XSL metninin derlenmesinde bir başarısızlıktan kaynaklanabilir. javax.xml.transform.TransformerConfigurationException: javax.xml.transform.TransformerException: org.xml.sax.SAXParseException: "input" öğesi türüyle ilişkili "value" özniteliğinin değeri '<' karakterini içermemelidir.

    +0

    İyi soru, +1. Bir açıklama ve iki olası çözüm için cevabımı görün. –

    cevap

    2
    <input type="text" value="{//return/ControlNo}" /> 
    

    {} "value-of" ve uzun formu kullanırsanız probibly yüzden HTML çıkışını ayarlamak gerekecek

    <input type="text"> 
        <xsl:attribute name="value"> 
         <xsl:value-of select="//return/ControlNo" /> 
        </xsl:attribute> 
    </input> 
    

    eşdeğerdir için xslt kısayoldur GİRİŞ

    2
    <input type="text" value='<xsl:value-of 
    

    select = "// iade/ControlNo" />'/>

    doğru kapalı olduğunubu bununla

    sorun XML bir özellik değeri kâr marjını (etiket) içermesine izin verilmez ve atılan hata bu ihlal karşısında olmasıdır ... hata verir. kısa ve uzun:

    .1

    doğru Bunu yapmanın iki yolu vardır. Kısa yol. Kullanım:

    <input type="text" value="{//return/ControlNo}"/> 
    

    kullanma {someExpression} Özellik değerinde içine AVT -- Attribute-Value-Templatedenir. Değerlendirilmesi için someExpression neden olur ve değerlendirme sonucu bu AVT'nin yerini alır.

    .2.Uzun yol. Kullanım:

    <input type="text"> 
        <xsl:attribute name="value"> 
        <xsl:value-of select="//return/ControlNo"/> 
        </xsl:attribute> 
    </input> 
    

    Bu belirli isim ve özel bir değere sahip bir öznitelik oluşturmak için XSLT talimat <xsl:attribute> nasıl kullanılacağı bir örnektir. Oluşturulan öznitelik bir öğenin oluşturulmasını hemen izlemelidir (aksi halde bir hata atılır). Bu özellik hemen takip ettiği öğenin bir niteliği haline gelecektir.

    +0

    Sanırım "Uzun yol" unuzda bir yazım hatası var ... olduğu gibi bir hataya neden olacak. –

    +0

    @ Chris-Bentley: Teşekkürler, kopyalayıp yapıştırmanın yol açtığı şey ... Sabit. –

    İlgili konular