【发布时间】:2014-04-13 13:49:03
【问题描述】:
我有一个包含数据的 xml 文件(不是完整的 xml 文件)
<header>
<ParameterContext>
<Parameter>
<Name>FILEID<Name>
<Value>1001445<Value>
</Parameter>
<Identifier>Id</Identifier>
</ParameterContext>
<ParameterContext>
<Parameter>
<Name>product</Name>
<Value>ECT</ns0:Value>
</Parameter>
<Identifier>ProductName</Identifier>
</ParameterContext>
</header>
请帮我将此xml数据(参数上下文元素的数据)存储到arraylist中。
很抱歉没有早点发布。 我有 2 个类对象并加载
public class object{
private ArrayList<ParameterContext> parameterCtx = new ArrayList<ParameterContext>();
public ArrayList<ParameterContext> getParameterCtx() {
return parameterCtx;
}
public void setParameterCtx(ParameterContext parameterCtx) {
this.parameterCtx.add(parameterCtx) ;
}
public Parameter searchParameter(String name, String identifier, ArrayList<ParameterContext> al) {
for(int i = 0; i < al.size(); i++) {
if(al.get(i).getIdentifier().equalsIgnoreCase(identifier)) {
for(int j = 0; j < al.get(i).getParameter().size(); j++) {
if(al.get(i).getParameter().get(j).getName().equalsIgnoreCase(name) ) {
return al.get(i).getParameter().get(j);
}
}
}
}
return null ;
}
}
和
public class load{
@XmlElement(name = "ParameterContext")
protected List<load.ParameterContext> parameterContext;
public List<load.ParameterContext> getParameterContext() {
if (parameterContext == null) {
parameterContext = new ArrayList<load.ParameterContext>();
}
return this.parameterContext;
}
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "", propOrder = {
"parameter",
"identifier"
})
public static class ParameterContext {
@XmlElement(name = "Parameter", required = true)
protected List<load.ParameterContext.Parameter> parameter;
@XmlElement(name = "Identifier", required = true)
protected String identifier;
public List<load.ParameterContext.Parameter> getParameter() {
if (parameter == null) {
parameter = new ArrayList<load.ParameterContext.Parameter>();
}
return this.parameter;
}
public String getIdentifier() {
return identifier;
}
public void setIdentifier(String value) {
this.identifier = value;
}
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "", propOrder = {
"name",
"value"
})
public static class Parameter {
@XmlElement(name = "Name", required = true)
protected String name;
@XmlElement(name = "Value", required = true)
protected String value;
public String getName() {
return name;
}
public void setName(String value) {
this.name = value;
}
public String getValue() {
return value;
}
public void setValue(String value) {
this.value = value;
}
当我使用 object.searchparameter("FIELD","ID",object.getParameterCtx()).getValue());
NULLPOINTEREXCEPTION 来了。(getparameterCtx 未初始化)。在此行之前我需要正确初始化它。如何初始化?
【问题讨论】:
-
查看[详细](vogella.com/tutorials/JavaXML/article.html)answerof如何将xml解析成Java
-
使用 Jax-B 或 Jax-P 网络服务,您可以使用自顶向下(xml 到 java)等方法将 xml(UDDI) 转换为 java 类。
-
您的问题非常广泛,请告诉我们您尝试过什么并发布您遇到的问题,而不是放置如何做的问题?
标签: java xml xml-parsing jaxb