在java中添加根目录下的元素

时间:2016-07-25 10:05:32

标签: java xml

I have an xml file that I'm parsing using json (function:convertXmlFileToDocument), then I'm getting xml validation rules from the database (function: getRulesByType).

我正在做两个for循环来测试xml文件中的每个元素是否符合验证标准,例如强制性。 现在,如果验证的xml文件上的验证是正确的,我需要在根目录下添加一个有效的元素。我试过这个方法: /Document.appendChild(xmlDoc.createElement("status“));                     Document.setContent( “有效”); /                     但没有成功。有关如何操作的任何帮助吗?

public void execute()抛出异常{

try{

    Document xmlDoc = convertXmlFileToDocument("c:\\TEST.xml");

    String xmlType = xmlDoc.getRootElement().getAttributeValue("type"); 
    HashMap<String, HashMap<String, String>> hashValidationRules = getRulesByType(xmlType);

    HashMap<String, String> hashValidationRulesAtt = null;
    List<Element> childElem = xmlDoc.getRootElement().getChildren();
    List<Element> subChildElem = null;
    String elemName = "";
    String elemValue = "";
    boolean allIsOk = true;
    for (int j = 0; j < childElem.size(); j++) {

        subChildElem = childElem.get(j).getChildren();

        if(allIsOk){
            for (int j2 = 0; j2 < subChildElem.size(); j2++) {
                elemName = subChildElem.get(j2).getName();
                elemValue = subChildElem.get(j2).getValue();

                if(hashValidationRules.containsKey(elemName)){
                    hashValidationRulesAtt = hashValidationRules.get(elemName);
                    if(hashValidationRulesAtt.get("mandatory").equals("true") && (elemValue==null||elemValue.equals(""))){
                        allIsOk = false;
                        break;
                    }
                    if(elemValue.length()> Integer.parseInt(hashValidationRulesAtt.get("size"))){
                        allIsOk = false;
                        break;
                    }
                    if(hashValidationRulesAtt.get("format").equals("numeric")){
                        try {
                            Integer.parseInt(elemValue);
                        } catch (Exception e) {
                            allIsOk = false;
                            break;
                        }
                    }
                    if(hashValidationRulesAtt.get("format").equals("float")){
                        try {
                            Float.parseFloat(elemValue);
                        } catch (Exception e) {
                            allIsOk = false;
                            break;
                        }
                    }
                }
            }
        }else{
            /*Document.appendChild(xmlDoc.createElement("status"));
            Document.setContent("valid");*/
            break;
        }
    }

    if(!allIsOk){
        System.out.println("\n\n  ****Error****  \n\n");    
    }

}
finally {
    _Reader.endRead();
}

}

1 个答案:

答案 0 :(得分:0)

以下内容将有所帮助,您可以获取第一个孩子并将元素附加到其中。

fetch_sub()