"HTML"메소드를 사용하여 <메타> 태그를 추가하는 것을 사용하여 Java XML 변압기를 어떻게 방지합니까?
문제
내장 된 Java XML Transformer를 사용하여 XML 문서를 텍스트로 직렬화합니다. 그러나 HTML 모드에서 출력 할 때 문제가 있습니다.
내가 삽입 할 때마다 head
내장 변압기는 삽입하기로 결정합니다 META
컨텐츠 유형 데이터로 태그. 내 데이터 내부 에서이 태그를 원하지 않으며이 기능을 비활성화 할 출력 매개 변수를 찾을 수없는 것 같습니다. 나는 XSLT 스타일 시트를 만들고 문제의 태그를 벗길 수 있다는 것을 알고 있지만, 변압기 자체에 매개 변수를 비활성화하는 매개 변수를 설정할 수 있다는 것이 더 간단합니다.
당신은 "하지만 당신은 정말로이 태그를 가져야합니다"로 응답 할 수도 있습니다. 저를 믿으십시오. 필요하지 않습니다.
샘플 코드
Document d;
//d = <html><head><title></title></head><body></body></html>
Transformer t; //properly inited with no xslt specified
t.setOutputProperty(OutputKeys.METHOD,"html");
t.setOutputProperty(OutputKeys.INDENT,"no");
t.transform(new DOMSource(d), result);
System.out.println(result);
보고
<html><head><META http-equiv="Content-Type" content="text/html; charset=UTF-8"><title></title><style type="text/css"></style></head><body></body></html>
예를 들어, 나는 그것을 원하지 않는다 META
거기에 태그. 가능한 가장 쉬운 방법으로 어떻게 제거합니까?
업데이트:
옵션을 가로 질러 실행합니다 {http://xml.apache.org/xalan}omit-meta-tag
내가 찾고있는 일을해야합니다. 그러나 그것은 무시되는 것처럼 보입니다.
해결책 2
이것은 복잡한 상황입니다. "{http://xml.apache.org/xalan}omit-meta-tag"
내장 Java Transform에서 무시됩니다.
짧은 대답은 Xalanj와 같은 것을 다운로드하여 수동으로 클래스 경로에 넣는 것입니다.
다른 팁
아래에 추가해보십시오 :
trans.setOutputProperty(OutputKeys.METHOD, "xml");
trans.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "yes");
Java 8 u 131,
transformer.setOutputProperty("{http://xml.apache.org/xalan}omit-meta-tag", "yes");
예상대로 작동하는 것 같습니다
제휴하지 않습니다 StackOverflow