报文解析的一些问题

2023-07-21 13:42:05 +08:00
 yinshaojun96
<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 的一个问题,但是没有给我比较好的回答,各位大佬有没有什么好办法

727 次点击
所在节点    程序员
2 条回复
dode
2023-07-22 09:34:56 +08:00
直接手动解析 dom 节点
yinshaojun96
2023-07-24 09:47:23 +08:00
@dode 可是报文是根据 count ,可能是<type1>标签,也可能是<Type2>标签,这个怎么手动呢。。。求指点

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/958580

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX