jdom과 부모 자식 관계가있는 중첩 요소를 사용하여 xml을 만들어야합니다. 나는 코드를 작성했지만 xml은 필자의 요구 사항과 일치하지 않습니다. 주석에는 필자가 요구하는 XML 형식이 주석 처리되어 있습니다. 제발 도와주세요 ..자바에서 jdom을 사용하여 xml을 생성하십시오.
내 코드
public static void main(String[] args) throws IOException {
Map<String, String> map = new LinkedHashMap();
map.put("webport", "/");
map.put("webserverobsoluteurl", "https://");
map.put("logger.folder", "/opt/apihandler/logs/wsapi");
map.put("logger.port", "9001");
map.put("logger.allowedlevel", "6");
map.put("logpropsfile", "/opt/apihandler/WSAPIHandler/WEB-INF/log4j.properties");
System.out.println(map);
Element root = new Element("worldsmart");
Document doc = new Document();
Element pchild = null;
for (Map.Entry<String, String> entry : map.entrySet()) {
System.out.println(entry.getKey() + "=====================" + entry.getValue());
if (entry.getKey().contains(".")) {
int dotIndex = entry.getKey().indexOf(".");
String parentTag = entry.getKey().substring(0, dotIndex);
String childTag = entry.getKey().substring(dotIndex + 1, entry.getKey().length());
pchild = new Element(parentTag);
pchild.addContent(new Element(childTag).setText(entry.getValue()));
root.addContent(pchild);
} else {
Element child = new Element(entry.getKey());
child.addContent(entry.getValue());
root.addContent(child);
}
}
doc.setRootElement(root);
XMLOutputter xmloutput = new XMLOutputter();
xmloutput.setFormat(Format.getPrettyFormat());
xmloutput.output(doc, new FileWriter("/root/Desktop/abc.xml"));
System.out.println("file saved");
}
필수 출력 :
<worldsmart>
<webserverobsoluteurl>https://</webserverobsoluteurl>
<webport>/</webport>
<logger>
<folder>/opt/apihandler/logs/wsapi</folder>
<port>9001</port>
<allowedlevel>6</allowedlevel>
</logger>
<logpropsfile> <![CDATA[ /opt/apihandler/WSAPIHandler/WEB-INF/log4j.properties ]]> </logpropsfile>
</worldsmart>
하지만 주석에,
<worldsmart>
<webport>/</webport>
<webserverobsoluteurl>https://</webserverobsoluteurl>
<logger>
<folder>/opt/apihandler/logs/wsapi</folder>
</logger>
<logger>
<port>9001</port>
</logger>
<logger>
<allowedlevel>6</allowedlevel>
</logger>
<logpropsfile>/opt/apihandler/WSAPIHandler/WEB-INF/log4j.properties</logpropsfile>
</worldsmart>
당신은에 따라 분할됩니다 반복문에'logger' 태그를 여러 번 추가하면됩니다. 먼저 부모 태그를 추가하기 전에 존재하는지 확인하십시오. – kjsebastian
부모 태그를 추가하기 전에 올바른 conscell이지만 로거 태그가 존재하지 않습니다. 내 요구 사항 값이 동적으로 나타납니다. – Shubham