2008-12-11 14 views
6

मैं एक एक्सएमएल फ़ाइल में एक एक्सएसएल एम्बेड करने की कोशिश कर रहा हूं। ऐसा करने का कारण एक ऐसी फाइल बनाना है जिसे विभिन्न कंप्यूटरों में स्थानांतरित किया जा सके, यह xsl फ़ाइल को स्थानांतरित करने की आवश्यकता को रोक देगा।एक एक्सएमएल फ़ाइल में xsl एम्बेड करें

एक्सएसएल फ़ाइल एक टेबल बना रही है और एक्सएमएल से एक परीक्षण कदम पकड़ रही है और चाहे वह पास हो या विफल हो, बहुत सरल।
मेरे पास जो मुद्दा है, मुझे लगता है कि xsl में जावास्क्रिप्ट है और यह प्रदर्शित किया जा रहा है जब xml को IE में लोड किया गया है।

जब मैं आईई के साथ एक्सएमएल फ़ाइल लोड करता हूं, जावास्क्रिप्ट तालिका के ऊपर प्रदर्शित होता है और तालिका के नीचे एक्सएमएल प्रदर्शित होता है।

यहाँ कैसे अपने दस्तावेज़ रखी बाहर किया जाता है:

<!DOCTYPE doc [ 
<!ATTLIST xsl:stylesheet 
    id ID #REQUIRED> 
]> 

<doc>  

<xsl:stylesheet id="4.1.0" 
    version="1.0" 
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
    xmlns:msxsl="urn:schemas-microsoft-com:xslt" 
    xmlns:user="http://www.ni.com/TestStand" 
    xmlns:vb_user="http://www.ni.com/TestStand/" > 

<xsl:template match="xsl:stylesheet" /> 
    <xsl:text disable-output-escaping="yes"> 

    <msxsl:script language="vbscript" implements-prefix="vb_user"> 
     option explicit 
     'This function will return the localized decimal point for a decimal number 
     Function GetLocalizedDecimalPoint() 
      dim lDecPoint 
      lDecPoint = Mid(CStr(1.1),2,1) 
      GetLocalizedDecimalPoint = lDecPoint 
     End Function 
    </msxsl:script> 
    <msxsl:script language="javascript" implements-prefix="user"><![CDATA[ 
     // This style sheet will not show tables instead of graphs for arrays of values if 
     // 1. TSGraph control is not installed on the machine 
     // 2. Using the stylesheet in windows XP SP2. Security settings prevent stylesheets from creatign the GraphControl using scripting. 
     //  Refer to the TestStand Readme for more information. 

//more javascript functions 
//code to build table and insert data from the xml 

</xsl:stylesheet> 

<Reports> 
<Report Type='UUT' Title='UUT Report' Link='-1-2008-12-3-10-46-52-713' UUTResult='Failed' StepCount='51'> 

// rest of xml 

</Report> 

</Reports> 
</doc> 

उत्तर

11

Although the W3C XSLT Spec supports embedding an XSLT stylesheet एक XML दस्तावेज में, ऐसा लगता है कि IE और Firefox इस समर्थन नहीं करते।

अद्यतन: रॉबर्ट नीएस्त्रोज द्वारा टिप्पणी के अनुसार, साल बाद, अक्टूबर 2014 में, इस फ़ायर्फ़ॉक्स में काम करता है 33.

हालांकि, वहाँ एक अच्छा विकल्प है: XSLT में XML दस्तावेज़ एम्बेड स्टाइलशीट

नीचे एक उदाहरण है।

एक XSLT एक एम्बेडेड XML दस्तावेज़ युक्त स्टाइलशीट:

 
<?xml-stylesheet type="text/xsl" href="myEmbedded.xml"?> 
<xsl:stylesheet version="1.0" 
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
<xsl:output omit-xml-declaration="yes"/> 
    <xsl:variable name="vEmbDoc"> 
     <doc> 
      <head></head> 
      <body> 
       <para id="foo">Hello I am foo</para> 
      </body> 
     </doc> 
    </xsl:variable> 
    <xsl:template match="para"> 
     <h1><xsl:value-of select="."/></h1> 
    </xsl:template> 
    <xsl:template match="xsl:template"/> 
</xsl:stylesheet> 

Tis फ़ाइल IE में खोला जाता है, वांछित परिणाम ब्राउज़र द्वारा प्रदर्शित होता है:

हैलो मैं foo हूँ

नोट करें, कि अधिकांश एक्सएसएलटी निर्देशों को अनदेखा करने वाले टेम्पलेट्स को शामिल करना आवश्यक है (इस मामले में हम किसी भीको अनदेखा कर रहे हैंबस कोई टेम्पलेट बॉडी नहीं है।

+1

इस तरह के स्टाइल शीट के भीतर दस्तावेज़ एम्बेड करने के लिए महत्वपूर्ण नोट - फ़ाइल नाम स्टाइल शीट की पहली पंक्ति में एन्कोड किया गया है। इसका मतलब है कि यदि आप फ़ाइल का नाम बदलते हैं, तो दस्तावेज़ अब पार्स नहीं होगा। – Colen

+0

यह फ़ायरफ़ॉक्स 33 में काम करता है। आज जांच की गई। –

+0

@RobertNiestroj, इस जानकारी के लिए धन्यवाद। उत्तर अपडेट किया गया। –

0

अधिकांश ब्राउज़रों के लिए स्टाइलशीट एम्बेडिंग संभव है लेकिन आईई। नीचे पोस्टिंग में वर्णन और उदाहरण का संदर्भ पाएं।

आईई 6/7/8 डिफ़ॉल्ट रूप से एम्बेडेड स्टाइलशीट का समर्थन नहीं करते हैं।

आपको IE सक्रिय करने के तरीके का उपयोग करने के लिए यहाँ से एम्बेडेड स्टाइलशीट कार्रवाई करने के लिए चाहते हो सकता है:

http://www.biglist.com/lists/lists.mulberrytech.com/xsl-list/archives/201001/msg00390.html

0

क्योंकि आपके स्टाइलशीट बनाता msxsl के उपयोग anabling स्टाइलशीट के लिए पिछले तकनीक IE ब्राउज़र के लिए एम्बेड करने के लिए ठीक होना चाहिए आप।

यदि आप स्टाइलशीट एम्बेडिंग चाहते हैं जो सभी ब्राउज़रों के लिए काम करता है तो आप तकनीक support of stylesheet embedding for ALL browsers तकनीक का उपयोग करना चाहेंगे।

+0

क्या आप इस जानकारी के साथ अपना पिछला उत्तर संपादित करना चाहते थे? मैं तुम्हारे लिए यह कर सकता हूँ। क्या आपने अपने पिछले खाते से अपना कनेक्शन खो दिया था? पृष्ठ के निचले हिस्से में "हमसे संपर्क करें" लिंक पर क्लिक करें और टीम को बताएं। –

संबंधित मुद्दे