如何添加Xml的属性?

时间:2018-11-25 13:09:09

标签: android xml xml-parsing retrofit2

我有一个要求,称其为operation =“ V”(fwxtrasptos001opercion =“ V”)。这是请求

<?xml version="1.0" encoding="iso-8859-1" standalone="yes"?>
<envelope>
    <version>v1.001</version>
    <tipo_codificacion>application/x-www-form-urlencoded</tipo_codificacion>
    <fwxtrasptos001 operacion="V">
        <origen_peticion></origen_peticion>
        <clientNumber></clientNumber>
        <cardNumber></cardNumber>
        <points></points>
    </fwxtrasptos001>
</envelope>

这是我的请求类别

@Xml(name = "fwxtrasptos001")
data class TransferPointsValidationRequest (

        @PropertyElement(name = "origen_peticion")
        val petition:String,
        @PropertyElement(name = "clientNumber")
        val userNumber:Long,
        @PropertyElement(name = "cardNumber") 
        val cardNumber:Long,
        @PropertyElement(name = "points")
        val pointsToTransfer:Long  
)

这是我的要求信封:

@Xml(name = "envelope")
class EnvelopeTransferPointsValidation (

        @Element(
                typesByElement = [
                    ElementNameMatcher(type = TransferPointsValidationRequest::class, name = "fwxtrasptos001")
                ]
        )
        val body: SoapRequestBody,

        @PropertyElement(name = "version")
        val version: String = "v1.002",

        @PropertyElement(name = "tipo_codificacion")
        val codificationType: String = "application/x-www-form-urlencoded"

)

有了代码,我如何将fwxtrasptos001运算符=“ V”添加到begin xml标记中

1 个答案:

答案 0 :(得分:0)

开始标签由元素名称加上零个或多个属性(关键字/值对)组成。相应的结束标记必须包含(相同)元素名称;它不能包含属性。因此,结束标签中的名称必须与开始标签中的名称匹配;属性不是名称的一部分。

我对您所使用的技术不熟悉,但是我怀疑您的代码name = "fwxtrasptos001 operacion='V'反映了这种误解:您应该在此处仅包括名称,而不是属性。

注意

自撰写此答案以来,该问题已经过大量编辑,因此该答案现在似乎与该问题无关。