首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将多个XML值存储到java

如何将多个XML值存储到java
EN

Stack Overflow用户
提问于 2019-07-19 17:45:30
回答 1查看 119关注 0票数 0

我的问题是如何传递xml的多个值的值:

代码语言:javascript
复制
       <newInsert>
    <src>BUDDY</src> 
    <dest>12345</dest> 
    <svcFlag>15</svcFlag> 
    <svcClass>0</svcClass>
    <svcTypeID>ABCD</svcTypeID> 
    <callCode></callCode>
    <prefix></prefix>

    <src>BUDDY</src> 
    <dest>1245</dest> 
    <svcFlag>15</svcFlag> 
    <svcClass>1</svcClass>
    <svcTypeID>ABDC</svcTypeID> 
    <callCode></callCode>
    <prefix></prefix>

    <src>BUDDY</src> 
    <dest>12321</dest> 
    <svcFlag>15</svcFlag> 
    <svcClass>1</svcClass>
    <svcTypeID>AABS</svcTypeID> 
    <callCode></callCode>
    <prefix></prefix>

</newInsert>

我现在如何存储它,并将它传递给准备好的语句?

我已经完成了存储单值xml的工作:

代码语言:javascript
复制
<newInsert>
    <src>BUDDY</src> 
    <dest>12345</dest> 
    <svcFlag>15</svcFlag> 
    <svcClass>0</svcClass>
    <svcTypeID>ABCD</svcTypeID> 
    <callCode></callCode>
    <prefix></prefix>
</newInsert>

我可以将其存储在一个变量中:

代码语言:javascript
复制
for(int i = 0; i < nList.getLength(); i++) {
    Node nodes = nList.item(i);

 if (nodes.getNodeType() == Node.ELEMENT_NODE) {
    Element element = (Element) nodes;

  src_name = element.getElementsByTagName("src").item(0).getTextContent();
  dest = element.getElementsByTagName("dest").item(0).getTextContent();
  svcFlag = element.getElementsByTagName("svcFlag").item(0).getTextContent();
  svcClass = element.getElementsByTagName("svcClass").item(0).getTextContent();
  svcTypeID = element.getElementsByTagName("svcTypeID").item(0).getTextContent();
  callCode =  element.getElementsByTagName("callCode").item(0).getTextContent();
  prefix = element.getElementsByTagName("prefix").item(0).getTextContent();     
 }
}

这些变量将被传递给预准备语句:

代码语言:javascript
复制
st= con.prepareStatement(ins_query);
st.setString(1, src_name);
st.setString(2, dest);
st.setString(3, svcFlag);
st.setString(4, svcClass);
st.setString(5, svcTypeID);
st.setString(6, callCode);
st.setString(7, prefix);
EN

回答 1

Stack Overflow用户

发布于 2019-07-19 18:07:01

您可以像这样创建新对象

代码语言:javascript
复制
public class Data{
 private src_name;
 private dest 
 private svcFlag 
 private svcClass 
 private svcTypeID 
 private callCode
 private prefix  
     //getters and setters
}

然后在循环中,您可以为每次迭代创建新的数据对象,并将其存储到列表中

代码语言:javascript
复制
List<String> nods = new ArrayList()<>;
......
if (nodes.getNodeType() == Node.ELEMENT_NODE) {
    Element element = (Element) nodes;
 Data data = new Data();
 data.setSrc_name(element.getElementsByTagName("src").item(0).getTextContent());
 data.setDest(element.getElementsByTagName("dest").item(0).getTextContent());
 ............    
}

然后,您可以遍历每个数据对象的节点、列表和create语句,如下所示

代码语言:javascript
复制
nods.stream().forEach(nod->{
st= con.prepareStatement(ins_query);
st.setString(1,nod.getSrc_Name);
st.setString(2,nod.getDest);
.................
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57109817

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档