2009-11-13 10 views
35

मेरे पास कुछ एक्सएमएल है जो मैं एक्सएसएलटी का उपयोग कर एचटीएमएल में बदलने की कोशिश कर रहा हूं, लेकिन मैं इसे अपने जीवन के लिए काम नहीं कर सकता। क्या कोई बता सकता है कि मुझसे क्या गलत हो रहा है?एक्सएसएलटी नामस्थान के साथ एक्सएमएलटी ट्रांसफॉर्म

एक्सएमएल

<ArrayOfBrokerage xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.test.com/"> 
    <Brokerage> 
     <BrokerageID>91</BrokerageID> 
     <LastYodleeUpdate>0001-01-01T00:00:00</LastYodleeUpdate> 
     <Name>E*TRADE</Name> 
     <Validation i:nil="true" /> 
     <Username>PersonalTradingTesting</Username> 
    </Brokerage> 
</ArrayOfBrokerage> 

XSLT

<xsl:stylesheet version="1.0" xmlns="http://www.test.com/" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xslFormatting="urn:xslFormatting"> 

    <xsl:output method="html" indent="no"/> 

    <xsl:template match="/ArrayOfBrokerage"> 
     <xsl:for-each select="Brokerage"> 
      Test 
     </xsl:for-each> 
    </xsl:template> 

</xsl:stylesheet> 

उत्तर

49

आपको अपने तत्वों के लिए अपने xslt में एक नामस्थान उपसर्ग प्रदान करने की आवश्यकता है। किसी कारण से (कम से कम जावा जेएक्सपी पार्सर में) आप बस एक डिफ़ॉल्ट नेमस्पेस घोषित नहीं कर सकते हैं। यह मेरे लिए काम करता है:

<xsl:stylesheet version="1.0" xmlns:t="http://www.test.com/" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xslFormatting="urn:xslFormatting"> 

    <xsl:output method="html" indent="no"/> 

    <xsl:template match="/t:ArrayOfBrokerage"> 
     <xsl:for-each select="t:Brokerage"> 
      Test 
     </xsl:for-each> 
    </xsl:template> 

</xsl:stylesheet> 

यह आपके एक्सएमएल दस्तावेज़ में नामित सबकुछ पकड़ लेगा।

+0

यह मेरे लिए भी परीक्षण में काम करता है (विजुअल स्टूडियो 2008 में एक्सएसएलटी डीबग चला रहा है) – Murph

+0

यह चाल है। मैंने इसे बहिष्कृत-परिणाम-उपसर्ग = "टी" के संयोजन के साथ प्रयोग किया था क्योंकि मैंने सोचा था कि यह मुझे प्रत्येक नोड से पहले टी पर ट्रेस करने की अनुमति नहीं देगा। क्या ऐसा करने से बचने का कोई तरीका है? – Chris

+2

मुझे नहीं लगता कि वहां है। –

-2

आप परिवर्तन कैसे अमल करते हैं? XML दस्तावेज़ की शुरुआत में

<?xml-stylesheet type="text/xsl" href="cdcatalog.xsl"?> 

: शायद आप XML दस्तावेज़ का उपयोग करने के XSLT स्टाइलशीट से जोड़ने के लिए भूल गया था। More explanation here

+0

मुझे यकीन नहीं है कि इसका मतलब क्या है। मैं वास्तव में एक एक्सएमएल फ़ाइल पर एक परिवर्तन नहीं कर रहा हूं बल्कि डेटाकंट्रैक्टसेरियलाइज़र का उपयोग करके एक व्यापार ऑब्जेक्ट को क्रमबद्ध कर रहा हूं और ऑब्जेक्ट के डेटाकंट्रैक्ट में नेमस्पेस निर्दिष्ट कर रहा हूं। – Chris

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

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