基于Java 解析 xml 报文中的循环问题,急急~!在线等各位大神帮帮忙啊

爾亱 2012-10-18 09:39:20
<Response>
<Body>
<jfxx>
<ryxx>
<xm>x8</xm>
<zjlx>1</zjlx>
<sfzmh>123456789911224842</sfzmh>
<lxdh>12345989525</lxdh>
<lxdz>x9</lxdz>
<dzyx>111</dzyx>
</ryxx>
</jfxx>
<yfxx>
<ryxx>
<xm>x10</xm>
<zjlx>1</zjlx>
<sfzmh>123456789808155513</sfzmh>
<lxdh>12347981324</lxdh>
<lxdz>12345</lxdz>
<dzyx>222</dzyx>
</ryxx>
<ryxx>
<xm>x11</xm>
<zjlx>1</zjlx>
<sfzmh>123456789611225557</sfzmh>
<lxdh>1234583265</lxdh>
<lxdz>12345</lxdz>
<dzyx>3333</dzyx>
</ryxx>
</yfxx>
</Body>
</Response>
-------------------------------------------
这上面是我的模拟报文,Java代码要怎么写?我想把ryxx里的数据都拿出来,
我是这样做的,
这是一个其中节点
public class Yfxx {

RyxxMain[] ryxxMain; //人员信息主

public RyxxMain[] getRyxxMain() {
return ryxxMain;
}

public void setRyxxMain(RyxxMain[] ryxxMain) {
this.ryxxMain = ryxxMain;
}
}
这是另一个节点,
public class Jfxx {

RyxxMain[] ryxxMain; //人员信息主

public RyxxMain[] getRyxxMain() {
return ryxxMain;
}

public void setRyxxMain(RyxxMain[] ryxxMain) {
this.ryxxMain = ryxxMain;
}
}

下面是ryxx中的属性
String strXm; // 姓名
String strZjlx; // 证件类型:身份证,护照,营业执照(参见证件类型字典定义)
String strSfzmh; // 证件号码
String strLxdh; // 联系电话
String strLxdz; // 联系地址
String strDzyx; // 电子邮箱
public String getStrXm() {
return strXm;
}
public void setStrXm(String strXm) {
this.strXm = strXm;
}
public String getStrZjlx() {
return strZjlx;
}
public void setStrZjlx(String strZjlx) {
this.strZjlx = strZjlx;
}
public String getStrSfzmh() {
return strSfzmh;
}
public void setStrSfzmh(String strSfzmh) {
this.strSfzmh = strSfzmh;
}
public String getStrLxdh() {
return strLxdh;
}
public void setStrLxdh(String strLxdh) {
this.strLxdh = strLxdh;
}
public String getStrLxdz() {
return strLxdz;
}
public void setStrLxdz(String strLxdz) {
this.strLxdz = strLxdz;
}
public String getStrDzyx() {
return strDzyx;
}
public void setStrDzyx(String strDzyx) {
this.strDzyx = strDzyx;
}
接下来我该怎么写啊 各位,帮帮忙吧~!我没写过...
模板怎么配置啊?
<DataField Name="jfxx">
<xsl:for-each select="Response/Body/jfxx/ryxx">
<DataField Name="ryxx">
<DataField Name="xm">
<xsl:attribute name="Value">
<xsl:value-of select="xm" />
</xsl:attribute>
</DataField>
<DataField Name="zjlx">
<xsl:attribute name="Value">
<xsl:value-of select="zjlx" />
</xsl:attribute>
</DataField>
<DataField Name="sfzmh">
<xsl:attribute name="Value">
<xsl:value-of select="sfzmh" />
</xsl:attribute>
</DataField>
<DataField Name="lxdh">
<xsl:attribute name="Value">
<xsl:value-of select="lxdh" />
</xsl:attribute>
</DataField>
<DataField Name="lxdz">
<xsl:attribute name="Value">
<xsl:value-of select="lxdz" />
</xsl:attribute>
</DataField>
<DataField Name="dzyx">
<xsl:attribute name="Value">
<xsl:value-of select="dzyx" />
</xsl:attribute>
</DataField>
</DataField>
</xsl:for-each>
</DataField>

<DataField Name="yfxx">
<xsl:for-each select="Response/Body/yfxx/ryxx">
<DataField Name="ryxx">
<DataField Name="xm">
<xsl:attribute name="Value">
<xsl:value-of select="xm" />
</xsl:attribute>
</DataField>
<DataField Name="zjlx">
<xsl:attribute name="Value">
<xsl:value-of select="zjlx" />
</xsl:attribute>
</DataField>
<DataField Name="sfzmh">
<xsl:attribute name="Value">
<xsl:value-of select="sfzmh" />
</xsl:attribute>
</DataField>
<DataField Name="lxdh">
<xsl:attribute name="Value">
<xsl:value-of select="lxdh" />
</xsl:attribute>
</DataField>
<DataField Name="lxdz">
<xsl:attribute name="Value">
<xsl:value-of select="lxdz" />
</xsl:attribute>
</DataField>
<DataField Name="dzyx">
<xsl:attribute name="Value">
<xsl:value-of select="dzyx" />
</xsl:attribute>
</DataField>
</DataField>
</xsl:for-each>
</DataField>

我是这样配置的,但取不到ryxx中的值啊
...全文
107 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
cscript 2012-10-18
  • 打赏
  • 举报
回复
先添加 dom4j jar包


String respTtr = "<Response><body>...省略...<body></Response>";

SAXReader reader = new SAXReader();

Document doc = reader.read(new ByteArrayInputStream(respTtr.getBytes("UTF-8")));

List<Element> infos = doc.selectNodes("Response/Body/ryxx");
for(Element item: infos){ //这里遍历所有ryxx节点 并转换为 Yfxx对象
Yfxx yfxx = new Yfxx();
yfxx.setStrXm(item.elementText("xm"));
yfxx.getStrZjlx(item.elementText("zjlx"));
//.... 省略其他属性,lz自行添加
}

67,512

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧