Java 및 SAX 파서를 사용하여 XML 구문 분석을 처음 사용합니다. 정말 큰 XML 파일을 가지고 있기 때문에 크기 때문에 SAX 파서를 사용하는 것이 좋습니다. 내 작업의 일부분을 파싱하고 예상대로 작동합니다. 이제 XML 작업에는 사용자 요청에 따라 일부 노드 삭제/업데이트 작업이 하나 남았습니다.sax 및 java를 사용하여 xml 파일에서 여러 노드 제거
모든 태그를 이름으로 찾아서 data
속성 등을 변경할 수 있습니다. SAX로이를 수행 할 수 있다면 삭제도 가능할 수 있습니다.
샘플 XML은 일부 경우에 일부 기능을 설명합니다. 사용자 입력은 "사례"이름 (case1
, case2
)입니다. 사용자가 아니라 case1
태그 (예 : case1
에 대한) 이러한 경우 중 하나를 삭제하고자 할 경우
<ruleset>
<rule id="1">
<condition>
<case1>somefunctionality</case1>
<allow>true</allow>
</condition>
</rule>
<rule id="2">
<condition>
<case2>somefunctionality</case2>
<allow>false</allow>
</condition>
</rule>
</ruleset>
는 전체 rule
태그는 삭제해야합니다. ,
<ruleset>
<rule id="2">
<condition>
<case2>somefunctionality</case2>
<allow>false</allow>
</condition>
</rule>
</ruleset>
내 질문은이는 SAX를 사용하여 수행 할 수 있습니다 : case1
이 삭제 될 경우, XML이 될 것인가? 이 시점에서 DOM이나 다른 파서를 사용할 수 없습니다. 다른 옵션은 문자열 검색뿐입니다. SaxParser를 사용하여 어떻게 수행 할 수 있습니까?
이 항상 SAX 순차적 요소를 구문 분석으로 예상대로 작동하지 않습니다 - 당신은 서로 인접한 2 가까운 태그가있는 경우하는 endElement 방법이 될 것입니다 의미 두 번 호출되며 skip이 호출 된 마지막 시간 (마지막 startElement)에 따라 건너 뜁니다. – Mike