나는 Weblogic XmlDocument
파서로 작성한 XmlDocument
을 java에 가지고 있습니다.XmlDocument에서 XML 태그 삽입/바꾸기
이 XMLDocument
에있는 태그의 콘텐츠를 내 데이터로 바꾸거나 태그가없는 경우 해당 태그를 삽입하고 싶습니다.
<customdata>
<tag1 />
<tag2>mfkdslmlfkm</tag2>
<location />
<tag3 />
</customdata>
나는 예를 들어, 위치 태그의 일부 URL을 삽입 할 : 그대로
는
<location>http://something</location>
하지만 그렇지 않으면 XML을 둡니다.
XmlObject xmlobj = XmlObject.Factory.parse(a.getCustomData(), options);
XmlCursor xmlcur = xmlobj.newCursor();
while (xmlcur.hasNextToken()) {
boolean found = false;
if (xmlcur.isStart() && "schema-location".equals(xmlcur.getName().toString())) {
xmlcur.setTextValue("http://replaced");
System.out.println("replaced");
found = true;
} else if (xmlcur.isStart() && "customdata".equals(xmlcur.getName().toString())) {
xmlcur.push();
} else if (xmlcur.isEnddoc()) {
if (!found) {
xmlcur.pop();
xmlcur.toEndToken();
xmlcur.insertElementWithText("schema-location", "http://inserted");
System.out.println("inserted");
}
}
xmlcur.toNextToken();
}
내가 XmlDocument
가 execQuery
방법이 있기 때문에이 작업을 수행하는 "빠른"xquery
방법을 찾아야했지만, 매우 쉽게 찾을 수 없습니다 :
XMLCursor
사용합니다.
아무에게도 이보다 좋은 방법이 있습니까? 그것은 약간 정교하게 보인다.
replace는 문서를 수정하지 않고 단지 문자열의 텍스트 항목을 대체하고 문자열을 반환합니다. –