想要将xml解析为java对象

时间:2019-02-05 09:52:36

标签: java arrays xml

在我的情况下,它不是完整的xml,而不是我想解析要解析的xml标记的一部分。

<FILTERABLE>
    <FILTER_ELEMENT ALIAS_NAME="roomnumber" JOINER="AND" LPAREN="false" OPERATOR="BEGINS" RPAREN="false" SEQNUM="1" VALUE="1001"/>
</FILTERABLE>

请帮助将代码转换为Java对象。

ByteArrayInputStream bis = new ByteArrayInputStream(filterStrValue.getBytes("UTF-8"));
                    Document document = EntityCollectionXMLUtil.DomfromXML(new InputSource(bis), false);
                    Element rootElement = document.getDocumentElement();
                    rootElement.getElementsByTagName("FILTERABLE")

需要一个Java对象,因为下面包含一对哈希图

FILTER_ELEMENT ALIAS_NAME = "roomnumber"
JOINER="AND"
LPAREN="false" 
OPERATOR="BEGINS"
RPAREN="false"
SEQNUM="1"
VALUE="1001"

1 个答案:

答案 0 :(得分:0)

dom4j是用于解析XML文档的基于Java的开源库。在这个答案中使用dom4j api解析xml文档。因此,请将dom4j.jar文件添加到应用程序的类路径中。

FILTER_ELEMENT的类

public class Filter_Element {

    private String ALIAS_NAME;
    private String JOINER;
    private Boolean LPAREN;
    private String OPERATOR;
    private Boolean RPAREN;
    private int SEQNUM;
    private int VALUE;

    public String getALIAS_NAME() {
        return ALIAS_NAME;
    }
    public void setALIAS_NAME(String aLIAS_NAME) {
        ALIAS_NAME = aLIAS_NAME;
    }
    public String getJOINER() {
        return JOINER;
    }
    public void setJOINER(String jOINER) {
        JOINER = jOINER;
    }
    public Boolean getLPAREN() {
        return LPAREN;
    }
    public void setLPAREN(Boolean lPAREN) {
        LPAREN = lPAREN;
    }
    public String getOPERATOR() {
        return OPERATOR;
    }
    public void setOPERATOR(String oPERATOR) {
        OPERATOR = oPERATOR;
    }
    public Boolean getRPAREN() {
        return RPAREN;
    }
    public void setRPAREN(Boolean rPAREN) {
        RPAREN = rPAREN;
    }
    public int getSEQNUM() {
        return SEQNUM;
    }
    public void setSEQNUM(int sEQNUM) {
        SEQNUM = sEQNUM;
    }
    public int getVALUE() {
        return VALUE;
    }
    public void setVALUE(int vALUE) {
        VALUE = vALUE;
    }
}

将xml元素(FILTER_ELEMENT)的值设置为filterElement对象

try {

    File fXmlFile = new File("your_xml_file.xml");
    DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
    DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
    Document doc = dBuilder.parse(fXmlFile);
    NodeList nodeList= doc.getElementsByTagName("FILTER_ELEMENT");
    Filter_Element filterElement;

    for(int i = 0; i < nodeList.getLength(); i++) {
        Node node = nodeList.item(i);
        filterElement = new Filter_Element();

        filterElement.setALIAS_NAME(node.getAttributes().getNamedItem("ALIAS_NAME").getNodeValue());
        filterElement.setJOINER(node.getAttributes().getNamedItem("JOINER").getNodeValue());
        filterElement.setLPAREN(Boolean.valueOf(node.getAttributes().getNamedItem("LPAREN").getNodeValue()));
        filterElement.setOPERATOR(node.getAttributes().getNamedItem("OPERATOR").getNodeValue());
        filterElement.setRPAREN(Boolean.valueOf(node.getAttributes().getNamedItem("RPAREN").getNodeValue()));
        filterElement.setSEQNUM(Integer.valueOf(node.getAttributes().getNamedItem("SEQNUM").getNodeValue()));
        filterElement.setVALUE(Integer.valueOf(node.getAttributes().getNamedItem("VALUE").getNodeValue()));
    }

} catch (Exception e) {

    e.printStackTrace();

}