2011-10-03 21 views
5

फेंक रहा है मैं नीचे के रूप में xml है,XSLT रूपांतरित होने वाले त्रुटि

<?xml version="1.0" encoding="utf-16" ?> 
<AllResidentAndUnitInfo xmlns:i="http://www.w3.org/2001/XMLSchema-instance" 
i:type="ResidentsByUnitInfo" xmlns="http://schemas.datacontract.org/2004/07/FSRSchema"> 
    <BillingAddresses> 
     <BillingAddress> 
     <billing_address1>Some address</billing_address1> 
     <billing_address2 /> 
     <billing_city>Gilbert</billing_city> 
     <billing_country i:nil="true"/> 
     <billing_dtmmodified>2010-12-08T01:37:41+05:30</billing_dtmmodified> 
     <billing_state>AZ</billing_state> 
     <billing_zipcode>23233</billing_zipcode>    
     </BillingAddress> 
     <BillingAddress> 
     <ResidentsByUnitInfoPropertyUnitBillingAddress> 
     <billing_address1>Some address</billing_address1> 
     <billing_address2 /> 
     <billing_city>Gilbert</billing_city> 
     <billing_country i:nil="true"/> 
     <billing_dtmmodified>2010-12-08T01:37:41+05:30</billing_dtmmodified> 
     <billing_state>AZ</billing_state> 
     <billing_zipcode>23233</billing_zipcode> 
     </ResidentsByUnitInfoPropertyUnitBillingAddress> 
     </BillingAddress> 
     .... 

</AllResidentAndUnitInfo> 

मैं XslCompiledTransform का उपयोग कर सी # में एक और एक्सएमएल प्रारूप में बदलने हूँ,

<?xml version='1.0' ?> 
<xsl:stylesheet xmlns:xsl='http://www.w3.org/1999/XSL/Transform' 
    xmlns:msxsl='urn:schemas-microsoft-com:xslt' 
    xmlns:i='http://www.w3.org/2001/XMLSchema-instance' exclude-result-prefixes='msxsl 
    i' version='1.0'> 
<xsl:output method='xml' indent='yes'/> 
<xsl:template match='/AllResidentAndUnitInfo/BillingAddresses/BillingAddress'> 
    <Root> 
     <Address1>..</Address2> 
       ... 
    </Root> 
</xsl:template> 
    </xsl:stylesheet> 

मैं त्रुटि मिल रही है " राज्य स्टार्ट में टोकन टेक्स्ट के परिणामस्वरूप एक अवैध XML दस्तावेज़ होगा। सुनिश्चित करें कि कॉन्फॉर्मेंसलेवल सेटिंग कॉन्फॉर्मेंस लेवल पर सेट की गई है। फ्रैगमेंट या कॉन्फॉर्मेंसलेवल.ऑटो अगर आप एक्सएमएल खंड लिखना चाहते हैं। " मुझे समझ में आया कि समस्या x: nil विशेषताएँ xml में है। घटनाक्रम में मैंने एक्सएसएलटी में उनके नामस्थान को अभी भी शामिल किया है, फिर भी मुझे त्रुटि मिल रही है।

उत्तर

11

मैं त्रुटि मिल रही है "राज्य में टोकन पाठ प्रारंभ एक अमान्य XML दस्तावेज़ में परिणाम होगा। सुनिश्चित करें कि ConformanceLevel सेटिंग ConformanceLevel.Fragment या ConformanceLevel.Auto करने के लिए सेट है यदि आप चाहते लिखने के लिए सुनिश्चित करें एक एक्सएमएल खंड। " मुझे समझ में आया कि समस्या i: nil xml में विशेषताएँ है। घटनाक्रम में मैंने एक्सएसएलटी में उनके नामस्थान को अभी भी शामिल किया है, मुझे अभी भी त्रुटि मिल रही है।

नहीं। समस्या यह है कि परिणाम एक अच्छी तरह से गठित XML दस्तावेज़ और इस तरह XmlWriter, पाठ में परिणाम पेड़ के अंतिम क्रमबद्धता के उत्पादन में शामिल, इस अपवाद को जन्म देती नहीं है।

वास्तव में, अपने परिणाम में आप दो Root तत्व और उनमें से कोई एक माता पिता के तत्व है।

आप एक अच्छी तरह से गठित दस्तावेज़ उत्पादन, या ConformanceLevel.Fragment या ConformanceLevel.Auto को XmlWriter के लिए ConformanceLevel सेटिंग को बदलने की जरूरत है।

एक wellformed उत्पादन बनाने के लिए, जोड़ने:

<xsl:template match="/"> 
<top> 
    <xsl:apply-templates/> 
</top> 
</xsl:template>