2011-06-13 16 views
8

Possible Duplicate:
Set HTML5 doctype with XSLTकैसे उत्पादन <! DOCTYPE HTML> XSLT

साथ करने के लिए मैं नई हूँ XSLT के लिए और मैं एक एचटीएमएल 5 दस्तावेज़ निर्माण करने के लिए कोशिश कर रहा हूँ।

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

<xsl:template match="/"> 
    <!DOCTYPE html> 

और Firefox मुझे त्रुटि

"XML Parsing Error: not well-formed 
Location: file:///E:/XSLT-XML-Shema/shipping-transform.xsl 
Line Number 6, Column 4: <!DOCTYPE html> 

देता है यह सिर्फ <html> यह ठीक काम करता है। मैं इसे कैसे ठीक करूं और ऐसा क्यों होता है?

--EDIT--

<?xml version="1.0" encoding="UTF-8"?> 
<xsl:stylesheet version="1.0" 
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
<xsl:output method="html" doctype-system="about:legacy-compact" /> 
<xsl:template match="/"> 
     <!DOCTYPE html> 

     <head> 
       <meta charset="utf-8" /> 
      <title>Sample Corporation #1</title> 
      </head> 
      <body> 
      Hello this is a test<br /> 
      Goodbye! 
      </body> 
      </html> 
</xsl:template> 

</xsl:stylesheet> 
+0

यह एक संभावित डुप्लिकेट है, लेकिन वह धागा इसे पढ़ना मुश्किल है। "मैं XSLT के लिए नया हूं" के लिए अभी तक कठिन है। –

उत्तर

25

आप पूरी तरह अनुबंधित रूप चाहते हैं, अपने एकमात्र विकल्प xsl:text की disable-output-escaping के रूप में ऊपर टिप्पणी में जुड़ा हुआ है। मुझे लगता है कि यह एक सा गंदा है, और अधिक है, तो आप एक टेम्पलेट के भीतर यह इंगित करने के लिए है:

<xsl:template match="/"> 
    <xsl:text disable-output-escaping="yes">&lt;!DOCTYPE html&gt;</xsl:text> 
</xsl:template> 

वैकल्पिक सफाई घोल, W3C एचटीएमएल 5 के लिए परिभाषित करता है एक विशिष्ट DOCTYPE विरासत स्ट्रिंग है कि HTML जनरेटर द्वारा इस्तेमाल किया जा सकता है, जो कर सकते हैं ' छोटे प्रारूप में doctype प्रदर्शित नहीं करते हैं। इसलिए, शुद्ध एक्सएसएलटी के साथ रहने के लिए आप इसका उपयोग कर सकते हैं:

<xsl:stylesheet version="1.0" 
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 

    <xsl:output method="html" doctype-system="about:legacy-compat" /> 

    <xsl:template match="/"> 
     <html> 
      <head> 
       <meta charset="utf-8" /> 
       <title>Sample Corporation #1</title> 
      </head> 
      <body> 
       Hello this is a test<br /> 
       Goodbye! 
      </body> 
     </html> 
    </xsl:template> 

</xsl:stylesheet> 
+0

अभी भी वही समस्या है, क्या मैं इसे सही कर रहा हूं? –

+0

@ quest4knowledge: रूट टेम्पलेट के नीचे ' 'को हटाएं और आप कर चुके हैं! –

+1

मेरा मानना ​​है कि फ़ायरफ़ॉक्स में एक्सएसएलटी प्रोसेसर अक्षम-आउटपुट-एस्केपिंग का समर्थन नहीं करता है (जो एक वैकल्पिक सुविधा है और एक्सएसएलटी 2.0 में बहिष्कृत है)। –