मुझे एपीआई से निम्नलिखित परिणाम मिला है और मुझे इसका उपयोग करने की आवश्यकता है।

<resultcode>0</resultcode>
<config>
    <item>
        <c_no>1040120094364111</c_no>
        <cdate>20201224100000</cdate>
        <u_d>0</u_d>
        <fare>1250</fare>
        <balance>9750</balance>
        <area>AF0142</area>
        <bc_no>12</bc_no>
    </item>
    <item>
        <c_no>1040120094364111</c_no>
        <cdate>20201224100000</cdate>
        <u_d>0</u_d>
        <fare>1250</fare>
        <balance>9750</balance>
        <area>AF0142</area>
        <bc_no>12</bc_no>
    </item>
</config>

मैं SimpleXmlParser का उपयोग करके उपरोक्त डेटा को पार्स करने का प्रयास कर रहा हूं।

मेरे द्वारा उपयोग किया जाने वाला डेटा वर्ग इस प्रकार है

@Root
data class TransActionResponse @JvmOverloads constructor(
    @field:ElementList(name = "config", required = false, inline = true)
    var config: TransActionConfig? = null,
    @field:Element(name = "resultCode", required = false)
    var resultCode: Int
)

@Root(name = "config", strict = false)
data class TransActionConfig @JvmOverloads constructor(
    @field:ElementList(name = "item", required = false, inline = true)
    var item: ArrayList<TransActionItem> = arrayListOf()
)

हालाँकि, निम्न त्रुटि होती है:

Caused by: javax.xml.stream.XMLStreamException: ParseError at [row,col]:[1,67]
    Message: start tag not allowed in epilog but got c

मैं उपरोक्त डेटा को कैसे पार्स कर सकता हूं? कृपया मेरी मदद करें

1
yong 21 जिंदा 2021, 11:13
github.com/Tickaroo/tikxml का उपयोग करें SimpleXmlConverterFactory बहिष्कृत है
 – 
Raghunandan
21 जिंदा 2021, 11:24
क्या आप उपरोक्त समस्या को tikxml से हल कर सकते हैं?
 – 
yong
21 जिंदा 2021, 11:25
यकीन है कि मैं जवाब पोस्ट करूंगा
 – 
Raghunandan
22 जिंदा 2021, 06:55

1 उत्तर

सबसे बढ़िया उत्तर

आप उपयोग कर सकते हैं //github.com/square/retrofit/tree/master/retrofit-converters/simplexml" rel="nofollow noreferrer">https://github.com/square/retrofit/tree/master/retrofit-converters/simplexml पदावनत है

निम्नलिखित को build.gradle फ़ाइल में जोड़ें

implementation 'com.github.Tickaroo.tikxml:annotation:0.8.15'
implementation 'com.github.Tickaroo.tikxml:core:0.8.15'
kapt 'com.github.Tickaroo.tikxml:processor-common:0.8.15'
kapt 'com.github.Tickaroo.tikxml:processor:0.8.15'

यदि आप रेट्रोफिट का उपयोग कर रहे हैं

implementation 'com.tickaroo.tikxml:retrofit-converter:0.8.15'

जोड़ना न भूलें

plugins {'
id 'kotlin-kapt'
}

रेट्रोफिट का निर्माण करते समय नीचे जोड़ें

 .addConverterFactory(
        TikXmlConverterFactory.create(
            TikXml.Builder()
                .exceptionOnUnreadXml(false)
                .build()
        )
 )

आपका डेटा वर्ग

@Xml
data class TransactionResponse (
@PropertyElement(name = "resultcode")
var resultcode: Int = 0,

@Element(name="config")
var config: Config

)

आपका कॉन्फिग क्लास

@Xml
data class Config( @Element
                   var item: List<Item>)

आपका आइटम वर्ग

@Xml
data class Item (
    @PropertyElement(name="c_no")
    var cNumber: String,

    @PropertyElement(name="c_date")
    var date: String,

    @PropertyElement(name="u_d)
    var uD: Int = 0,

    @PropertyElement(name="fare")
    var fare: Int = 0,

    @PropertyElement(name="balance")
    var balance: Int = 0,

    @PropertyElement(name="area")
    var area: String,

    @PropertyElement(name="bc_no")
    var bcno: Int = 0
)

अगर आप लॉग इन करते हैं तो आपको देखना चाहिए

Result code: 0
Area code: AF0142
C Number: 1040120094364111
Area code: AF0142
C Number: 1040120094364111
1
Raghunandan 22 जिंदा 2021, 07:25