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();
}
}
答案 0 :(得分:0)
以下内容将有所帮助,您可以获取第一个孩子并将元素附加到其中。
fetch_sub()