source.xml
을 네임 스페이스로 결심 할 수 없습니다XMLStreamWriter.writeStartElement (접두사, localName를, 이름 공간 URI)는 접두사 "매니페스트는"URI
source.xml
파일을 읽고 어떤 행동을 한 다음에 쓰기
javax.xml.stream.XMLStreamReader
를 사용
<?xml version="1.0" encoding="UTF-8"?>
<zip:archive xmlns:manifest="urn:oasis:names:tc:opendocument:xmlns:manifest:1.0" xmlns:zip="com.test.zip">
<zip:entry zip:target="test1.xml"><manifest:manifest>aaa</manifest:manifest></zip:entry>
<zip:entry zip:target="test2.xml">.......</zip:entry>
</zip:archive>
디스크의 속성 값은 zip:target
입니다.
결과 파일, test1.xml :
<?xml version="1.0" encoding="UTF-8"?>
<manifest:manifest>aaa</manifest:manifest>
당신은 알고있다, 그것은 잘못된 것입니다. 접두사 "매니페스트"는 네임 스페이스 URI로 해석 될 수 없습니다.
디버깅을 통해 다음 명령문이 성공적으로 호출되었음을 발견했습니다.
XMLStreamWriter.writeStartElement("manifest", "manifest", "urn:oasis:names:tc:opendocument:xmlns:manifest:1.0");
writeStartElement의 세 번째 매개 변수가 null이 아닙니다. 하지만 결과 파일에 네임 스페이스가 누락 된 이유는 무엇입니까?
- 설정 sRepairingNamespaces가, 네임 스페이스가 다시 선언했다
- 추가 writeNamespace writeStartElement
그러나 새로운 문제가 온 후 사실과 복제 할 :
나는 두 가지 방법을 시도했다.
sRepairingNamespaces를 true로 설정하면 새 문제가 발생하고 네임 스페이스가 다시 선언되고 복제됩니다. – guhai
URI를 접두어에 바인딩하기 위해'NamespaceContext' 구현을'XMLStreamWrite'r에 제공 했습니까? –