yinshaojun96
V2EX  ›  程序员

报文解析的一些问题

By yinshaojun96 at 2023 年 7 月 21 日 · 1836 次点击
<ABCB2I> <App> <Req> <AppNo>711000000749</AppNo> <Appl> <IDKind>110001</IDKind> <IDCode>222405197407151109</IDCode> <BeginDate>20000101</BeginDate> <InvalidDate>20900909</InvalidDate> <Name>孙会</Name> <Sex>1</Sex> <Birthday>19740715</Birthday> <Country>156</Country> <Address>接到办事处 5 号</Address> <Prov></Prov> <City>呼和浩特市</City> <Zone>市辖区</Zone> <ZipCode>100000</ZipCode> <Email>dfdfdfd</Email> <Phone>01002030333</Phone> <Mobile>13909660877</Mobile> <OtherConnect></OtherConnect> <ShortMsg></ShortMsg> <FixIncome>0</FixIncome> <AnnualIncome>100000.00</AnnualIncome> <Company></Company> <JobType></JobType> <JobCode>2200001</JobCode> <Notice></Notice> <RelaToInsured>01</RelaToInsured> </Appl> <Bnfs> <Count>1</Count> <Type1></Type1> <Name1></Name1> <Sex1></Sex1> <Birthday1></Birthday1> <IDCode1></IDCode1> <BeginDate1></BeginDate1> <InvalidDate1></InvalidDate1> <IDKind1></IDKind1> <RelationToInsured1></RelationToInsured1> <Sequence1></Sequence1> <Prop1></Prop1> <Phone1></Phone1> <Country1></Country1> <Address1></Address1> <Prov1></Prov1> <City1></City1> <Zone1></Zone1> </Bnfs> </Req> </App> </ABCB2I> ,其中<Bnfs>存在子标签<Count>,当<Count>的值为 1 时,则会有<Type1>,<Name1>........,当<Count>的值为 2 时,则有<Type2>,<Name2>...也就是说,在不同的每次交易请求中,Type,Name 标签命名的后缀也是不同的。你作为接收这种报文的一方,需要用 java 代码去解析这种报文,按照这种规律,用 JAXB 技术栈,对此 xml 报文进行解析,把 xml 转换为 java bean 对象,注意我希望 javabean 中不要定义 Type1,Type2 这样的值,只使用 Type,Name 这种不带后缀的命名,请提供一个清晰的回答,解释如何使用 JAXB 技术栈解析 XML 报文并将其转换为 Java Bean 对象。确保你的回答具有准确性和清晰度,并包含所需的详细步骤和代码示例,并且不要省略代码

请注意,你的回答应灵活多样且创意十足,以便提供更加独特而相关的解析方案。

这是我问 chatgpt 的一个问题,但是没有给我比较好的回答,各位大佬有没有什么好办法

2 条回复  •  2023-07-24 09:47:23 +08:00
dode
   1
dode  
   2023 年 7 月 22 日 via Android
直接手动解析 dom 节点
yinshaojun96
   2
yinshaojun96  
OP
   2023 年 7 月 24 日
@dode 可是报文是根据 count ,可能是<type1>标签,也可能是<Type2>标签,这个怎么手动呢。。。求指点
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
© 2026 V2EX · 226ms · 3.9.8.5