我使用 WSClient++ 生成源代码。当我将 null 值传递给对象时,我期望在生成请求 XML 时,它应该在请求 XML 中包含空标记。但当传递空值时,它似乎不会生成任何标签。例如:
SchoolRequest req = new SchoolRequest();
req.setName("Xyz");
req.setRoll(1);
req.setSub("CS");
req.setPunctual(null);
我希望请求 xml 为
<?xml version="1.0" encoding="UTF-8"?>
<soap:Envelope xmlns:soap="http://blah.blah.blah/" xmlns:ns4="http://abc.xyz/xml" xmlns:ns5="http://blah.blah.blah" xmlns:ns6="http://schemas.microsoft.com/2003/10/Serialization/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soap:Header />
<soap:Body>
<ns4:GetSchoolInfo>
<ns4:request>
<ns4:Name>1021</ns4:Name>
<ns4:Roll>1.0.2.1</ns4:Roll>
<ns4:Sub>CS</ns4:Sub>
<ns4:Punctual/> <----Notice this tag
</ns4:request>
</ns4:GetSchoolInfo>
</soap:Body>
</soap:Envelope>
我得到了什么
<?xml version="1.0" encoding="UTF-8"?>
<soap:Envelope xmlns:soap="http://blah.blah.blah/" xmlns:ns4="http://abc.xyz/xml" xmlns:ns5="http://blah.blah.blah" xmlns:ns6="http://schemas.microsoft.com/2003/10/Serialization/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soap:Header />
<soap:Body>
<ns4:GetSchoolInfo>
<ns4:request>
<ns4:Name>1021</ns4:Name>
<ns4:Roll>1.0.2.1</ns4:Roll>
<ns4:Sub>CS</ns4:Sub> <--Notice NO PUNCTUAL TAG
</ns4:request>
</ns4:GetSchoolInfo>
</soap:Body>
</soap:Envelope>
我对这种行为一无所知。我做错了什么吗?有人能帮我解决这个问题吗?
最佳答案
SchoolRequest req = new SchoolRequest();
req.setName("Xyz");
req.setRoll(1);
req.setSub("CS");
req.setPunctual(null);
尝试 ""
而不是 null
req.setPunctual("");
或""
req.setPunctual(" ");
您可以在阅读时修剪此空间。
关于android - 如果传递 null 则创建空标签 android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27915911/