去除wsimport生成JAXBElement <T>

本文介绍如何使用wsimport工具结合JAXB配置文件生成WebService客户端代码,并解释了特定参数的作用及生成代码中List类型的处理方法。

1.将网页保存为CeaEcFacadeService.wsdl文件(文件名任意取)



 2.新建xml文件jaxb-bindings.xml, 内容如下:

 

<jaxb:bindings version="2.0"  
               xmlns:jaxb="http://java.sun.com/xml/ns/jaxb">  
    <jaxb:bindings>  
        <jaxb:globalBindings generateElementProperty="false"/>  
    </jaxb:bindings>  
</jaxb:bindings> 

 

 

3.在cmd中执行下面的命令:

wsimport -b E:\webservice\03\jaxb-bindings.xml -Xnocompile -d e:/webservice/03/ -keep -verbose E:\webservice\03\CeaEcFacadeService.wsdl

 

-Xnocompile  不生成.class文件

-d 指定存放生成的代码的目录

 

当对象中有如:List变量时,生成的代码里面会出现没有setter方法,只有getter方法,此时只能通过getter方法先获取list在进行add()和remove()操作。

 

 

 

可以使用Python来实现将形如 `| 0 | 0 |` 格式的txt文档内容转换为 `<RECORD><COLUMN>0</COLUMN><COLUMN>0</COLUMN></RECORD>` 形式输出。以下是示例代码: ```python def txt_to_xml(input_file_path, output_file_path): with open(input_file_path, 'r', encoding='utf-8') as infile: lines = infile.readlines() xml_content = [] for line in lines: # 去除前后空格,并按 | 分割 parts = line.strip().split('|') # 去除空字符串 parts = [part.strip() for part in parts if part.strip()] if parts: record = '<RECORD>' for part in parts: record += f'<COLUMN>{part}</COLUMN>' record += '</RECORD>' xml_content.append(record) xml_content = '\n'.join(xml_content) with open(output_file_path, 'w', encoding='utf-8') as outfile: outfile.write(xml_content) input_file = 'input.txt' output_file = 'output.xml' txt_to_xml(input_file, output_file) ``` ### 代码解释 1. **定义函数**:定义 `txt_to_xml` 函数,该函数接受输入文件路径和输出文件路径作为参数。 2. **读取文件**:使用 `open` 函数读取输入文件的所有行。 3. **处理每行内容**:遍历每一行,去除前后空格,并按 `|` 分割,去除空字符串。 4. **生成XML内容**:对于每行分割后的内容,生成 `<RECORD>` 和 `<COLUMN>` 标签,并添加到 `xml_content` 列表中。 5. **写入文件**:将 `xml_content` 列表中的内容用换行符连接起来,并写入输出文件。 ### 运行脚本 将上述代码保存为一个Python文件,例如 `convert.py`,并将需要处理的txt文件命名为 `input.txt`,放在同一目录下。运行以下命令: ```bash python convert.py ``` 运行后,会在同一目录下生成一个名为 `output.xml` 的文件,其中包含转换后的XML内容。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值