xml - आप एक छवि कैसे जोड़ सकते हैं?




xslt xslt-1.0 (4)

मेरे पास एक सरल XML दस्तावेज़ है जिसमें छवि जानकारी शामिल है I मुझे इसे HTML में बदलने की आवश्यकता है - सरल, सही है? हालांकि, जब मैं नीचे XSL का उपयोग करता हूं, तो यह त्रुटि के साथ चलती है "कोई विशेषता नहीं शुरू कर सकते हैं जब कोई तत्व शुरू टैग नहीं है"। मुझे नहीं पता कि ओपन टैग कहां है - कोई विचार?

एक्सएमएल:

<root>
    <HeaderText>
        <HeaderText>Dan Testing</HeaderText>
    </HeaderText>
    <Image>
        <img width="100" height="100" alt="FPO lady" src="/uploadedImages/temp_photo_small.jpg"/>
    </Image>
    <BodyText>
        <p>This is a test of the body text<br  /></p>
    </BodyText>
    <ShowLinkArrow>false</ShowLinkArrow>
</root>

XSL:

<xsl:stylesheet version="1.0" extension-element-prefixes="msxsl"
    exclude-result-prefixes="msxsl js dl" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns:js="urn:custom-javascript" xmlns:msxsl="urn:schemas-microsoft-com:xslt"
    xmlns:dl="urn:datalist">
    <xsl:output method="xml" version="1.0" omit-xml-declaration="yes" indent="yes" encoding="utf-8"/>
    <xsl:template match="/" xml:space="preserve">
        <img>
            <xsl:attribute name="width">
                100
            </xsl:attribute>
            <xsl:attribute name="height">
                100
            </xsl:attribute>
            <xsl:attribute name="class">
                CalloutRightPhoto
            </xsl:attribute>
            <xsl:attribute name="src">
                <xsl:copy-of select="/root/Image/node()"/>
            </xsl:attribute>
        </img>
    </xsl:template>
</xsl:stylesheet>

कोई बात नहीं - मैं बेवकूफ हूँ मुझे बस <xsl की आवश्यकता है : मान का चयन = "/ रूट / छवि / नोड ()" />


कोशिश करने का दूसरा विकल्प सीधा है

<img width="100" height="100" src="/root/Image/image.jpeg" class="CalloutRightPhoto"/>

अर्थात् बिना {} लेकिन प्रत्यक्ष छवि पथ देने के बजाय


यह नहीं होना चाहिए:

<xsl:value-of select="/root/Image/img/@src"/>

? ऐसा लगता है कि आप संपूर्ण @ image / img नोड को @ @ @ @ attribute पर प्रतिलिपि बनाने का प्रयास कर रहे हैं


विशेषताओं को जोड़ने के लिए, एक्सएसएल चाहता है

<xsl:element name="img">
     (attributes)
</xsl:element>

बस के बजाय

<img>
     (attributes)
</img>

यद्यपि, हां, यदि आप तत्व की नकल कर रहे हैं, तो आपको उसमें से किसी की ज़रूरत नहीं है।