"HTML"메소드를 사용하여 <메타> 태그를 추가하는 것을 사용하여 Java XML 변압기를 어떻게 방지합니까?

StackOverflow https://stackoverflow.com/questions/1409091

  •  05-07-2019
  •  | 
  •  

문제

내장 된 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"); 

예상대로 작동하는 것 같습니다

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top