मैं वेब से एचटीएमएल-दस्तावेज़ पर xslt रूपांतरण लागू करने के लिए जावा (6) एक्सएमएल-एपीआई का उपयोग करता हूं। यह दस्तावेज़ xhtml अच्छी तरह से है और इसलिए एक वैध डीटीडी-स्पेक (<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
) शामिल है। अब एक समस्या होती है: एक्सएसएलटी-प्रोसेसर रूपांतरण को बदलने पर डीटीडी डाउनलोड करने का प्रयास करता है और डब्ल्यू 3-सर्वर HTTP 503 त्रुटि से इनकार करता है (Bandwith Limitation के कारण w3)।जावा, एक्सएमएल, एक्सएसएलटी: डीटीडी-सत्यापन को रोकें
मैं एक्सएसएलटी-प्रोसेसर को डीटी डाउनलोड करने से कैसे रोक सकता हूं? मुझे अपने इनपुट-दस्तावेज़ को सत्यापित करने की आवश्यकता नहीं है।
स्रोत है:
import javax.xml.transform.Source;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.stream.StreamResult;
import javax.xml.transform.stream.StreamSource;
-
String xslt = "<?xml version=\"1.0\"?>"+
"<xsl:stylesheet version=\"1.0\" xmlns:xsl=\"http://www.w3.org/1999/XSL/Transform\">"+
" <xsl:output method=\"text\" />"+
" <xsl:template match=\"//html/body//div[@id='bodyContent']/p[1]\"> "+
" <xsl:value-of select=\".\" />"+
" </xsl:template>"+
" <xsl:template match=\"text()\" />"+
"</xsl:stylesheet>";
try {
Source xmlSource = new StreamSource("http://de.wikipedia.org/wiki/Right_Livelihood_Award");
Source xsltSource = new StreamSource(new StringReader(xslt));
TransformerFactory ft = TransformerFactory.newInstance();
Transformer trans = ft.newTransformer(xsltSource);
trans.transform(xmlSource, new StreamResult(System.out));
}
catch (Exception e) {
e.printStackTrace();
}
मैं इतने पर यहाँ निम्नलिखित quesitons पढ़ते हैं, लेकिन वे सभी एक और एक्सएमएल-एपीआई का उपयोग करें:
धन्यवाद!
बस किसी के पास एक ही समस्या है: यह सही दिशा में जाता है (यही कारण है कि मैंने जवाब स्वीकार किया)। यदि आप डीटीडी वापस नहीं करना चाहते हैं, तो आप एक खाली भी वापस कर सकते हैं। – theomega
कृपया पूंजीकरण को ठीक करें: 'एक्सएमएल रीडर' होना चाहिए 'एक्सएमएल रीडर' – wau