yui 发表于 2017-5-19 10:54:15

在用java解析perl所提交的xml

perl调用其中抽取比较复杂的代码参数:

* Attachment => [
            {
                Content   => $Content,
                ContentType => $ContentType,
                Filename    => 'lala.txt',
            },
            {
                Content   => $Content,
                ContentType => $ContentType,
                Filename    => 'lala1.txt',
            },
      ],

针对上面特殊参数用java解析成xml提交的代码如下:

Filename,ContentType,Content分别为传入的上传附件的参数;Content为附件转换成base64Binary种字符串;
当对象为多个时需要调整xsd:anyType的数量;
dispatch.addChildElement("Param19_Name").addTextNode("Attachment").setAttribute("xsi:type","xsd:string");
SOAPElement e = dispatch.addChildElement("Array", "enc");
e.setAttribute("enc:arrayType", "xsd:anyType");
e.setAttribute("xsi:type", "xsd:Array");
SOAPElement obj = e.addChildElement("item");
e.addChildElement(obj);
obj.addChildElement("Filename").addTextNode(Filename).setAttribute("xsi:type","xsd:string");
obj.addChildElement("ContentType").addTextNode(ContentType).setAttribute("xsi:type","xsd:string");
obj.addChildElement("Content").addTextNode(Content).setAttribute("xsi:type","xsd:base64Binary");
e.addChildElement(obj);
页: [1]
查看完整版本: 在用java解析perl所提交的xml