2009-09-11 7 views
5

मैं एक XML दस्तावेज़ को पाठ में क्रमबद्ध करने के लिए अंतर्निहित जावा एक्सएमएल ट्रांसफार्मर का उपयोग कर रहा हूं। मुझे समस्या है हालांकि जब मैं HTML मोड में आउटपुट कर रहा हूं।मैं <META> टैग जोड़ने से "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 जो मैं के लिए क्या देख रहा हूँ करने के लिए माना जाता है के पार चला गया है। हालांकि ऐसा लगता है कि इसे अनदेखा किया जा रहा है।

+0

सेट के रूप में काम करने के लिए लगता है ** एक्सएमएल ** OutputKeys.METHOD का मूल्य। – adatapost

+0

मैं जो कर रहा हूं उसके लिए एचटीएमएल होना चाहिए – Mike

+1

एक्सएसएलटी '[चश्मा] (http://www.w3.org/TR/xslt#section-HTML-Output-Method) के अनुसार यह मानक व्यवहार है और इसकी आवश्यकता है ब्राउज़र यदि आप डिफ़ॉल्ट रूप से अन्य वर्ण सेट एन्कोड का उपयोग करते हैं। –

उत्तर

2

यह एक जटिल स्थिति है, क्योंकि ऐसा लगता है कि "{http://xml.apache.org/xalan}omit-meta-tag" अंतर्निहित जावा परिवर्तन में अनदेखा किया गया है।

तो संक्षिप्त जवाब xalanj की तरह कुछ डाउनलोड करना है और इसे अपने क्लासपाथ में मैन्युअल रूप से रखना है।

+4

यदि आप ऐसा करते हैं, तो आपको यह सुनिश्चित करना होगा कि आप इसे अनुमोदित निर्देशिका में डाल दें, ताकि यह जावा में बनाए गए संस्करण को ओवरराइड कर सके। विवरण के लिए http://java.sun.com/javase/6/docs/technotes/guides/standards/ देखें। –

4

नीचे जुड़ते कोशिश:

trans.setOutputProperty(OutputKeys.METHOD, "xml"); 
trans.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "yes"); 
0
जावा 8 यू 131 के साथ

,

transformer.setOutputProperty("{http://xml.apache.org/xalan}omit-meta-tag", "yes"); 

उम्मीद

संबंधित मुद्दे