>  기사  >  Java  >  Java에서 XML 구문 분석 중에 DTD 참조를 비활성화하려면 어떻게 해야 합니까?

Java에서 XML 구문 분석 중에 DTD 참조를 비활성화하려면 어떻게 해야 합니까?

Patricia Arquette
Patricia Arquette원래의
2024-10-26 23:58:30571검색

How can I disable DTD references during XML parsing in Java?

문서 구문 분석에서 DTD 참조 무시

DTD 참조가 포함된 XML 파일을 구문 분석할 때 DTD 파일이 없거나 액세스할 수 없기 때문에 오류가 발생할 수 있습니다. DTD 참조를 무시하면서 이러한 오류를 우회하려면 DocumentBuilderFactory 설정을 수정해야 합니다.

getDoc() 메서드 내에서 DocumentBuilderFactory를 인스턴스화하고 해당 기능을 다음과 같이 구성합니다.

<code class="java">DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();

// Ignore DTD references
dbf.setValidating(false);
dbf.setFeature("http://xml.org/sax/features/validation", false);
dbf.setFeature("http://apache.org/xml/features/nonvalidating/load-dtd-grammar", false);
dbf.setFeature("http://apache.org/xml/features/nonvalidating/load-external-dtd", false);

// Additional settings
dbf.setNamespaceAware(true);
dbf.setFeature("http://xml.org/sax/features/namespaces", false);

DocumentBuilder db = dbf.newDocumentBuilder();
...</code>

By 유효성 검사를 비활성화하고 외부 DTD 로드를 억제하면 DocumentBuilder는 구문 분석 중에 DTD 참조를 건너뜁니다. 이를 통해 DTD 가용성에 의존하지 않고 XML 파일을 처리할 수 있습니다.

파서 구현과 관련된 사용자 정의 옵션에 대한 자세한 내용은 Xerces2 설명서를 참조하세요.

위 내용은 Java에서 XML 구문 분석 중에 DTD 참조를 비활성화하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.