Java 类org.apache.commons.io.input.XmlStreamReader 实例源码
项目:streamflyer
文件:ModifyingReaderFactory.java
public ModifyingReader createInvalidXmlCharacterReplacingReader(InputStream xmlStream, String replacement)
throws IOException {
// buffer stream
// (is this really necessary to get optimal performance?)
if (!(xmlStream instanceof BufferedInputStream)) {
xmlStream = new BufferedInputStream(xmlStream);
}
// get the XML version
XmlStreamReader xmlReader = new XmlStreamReader(xmlStream);
XmlVersionReader xmlVersionReader = new XmlVersionReader(xmlReader);
String xmlVersion = xmlVersionReader.getXmlVersion();
// what kind of replacement?
boolean dollarZero;
if (replacement.contains("$0")) {
dollarZero = true;
} else {
dollarZero = false;
}
// create the reader that replaces invalid XML characters
Modifier modifier = new InvalidXmlCharacterModifier(8192, replacement, xmlVersion, dollarZero);
return new ModifyingReader(xmlVersionReader, modifier);
}
项目:streamflyer
文件:ModifyingReaderFactory.java
public ModifyingReader createXmlVersionModifyingReader(InputStream xmlStream, String newXmlVersion)
throws IOException {
// buffer stream
// (is this really necessary to get optimal performance?)
if (!(xmlStream instanceof BufferedInputStream)) {
xmlStream = new BufferedInputStream(xmlStream);
}
XmlStreamReader xmlReader = new XmlStreamReader(xmlStream);
XmlVersionReader xmlVersionReader = new XmlVersionReader(xmlReader);
// create the reader that replaces the XML version in prolog
Modifier modifier = new XmlVersionModifier(newXmlVersion, 8192);
return new ModifyingReader(xmlVersionReader, modifier);
}
项目:AntennaPodSP
文件:FeedHandler.java
public Feed parseFeed(Feed feed) throws SAXException, IOException,
ParserConfigurationException, UnsupportedFeedtypeException {
TypeGetter tg = new TypeGetter();
TypeGetter.Type type = tg.getType(feed);
SyndHandler handler = new SyndHandler(feed, type);
SAXParserFactory factory = SAXParserFactory.newInstance();
factory.setNamespaceAware(true);
SAXParser saxParser = factory.newSAXParser();
File file = new File(feed.getFile_url());
Reader inputStreamReader = new XmlStreamReader(file);
InputSource inputSource = new InputSource(inputStreamReader);
saxParser.parse(inputSource, handler);
inputStreamReader.close();
return handler.state.feed;
}
项目:EinschlafenPodcastAndroidApp
文件:FeedHandler.java
public Feed parseFeed(Feed feed) throws SAXException, IOException,
ParserConfigurationException, UnsupportedFeedtypeException {
TypeGetter tg = new TypeGetter();
TypeGetter.Type type = tg.getType(feed);
SyndHandler handler = new SyndHandler(feed, type);
SAXParserFactory factory = SAXParserFactory.newInstance();
factory.setNamespaceAware(true);
SAXParser saxParser = factory.newSAXParser();
File file = new File(feed.getFile_url());
Reader inputStreamReader = new XmlStreamReader(file);
InputSource inputSource = new InputSource(inputStreamReader);
saxParser.parse(inputSource, handler);
inputStreamReader.close();
return handler.state.feed;
}
项目:maven-seimicrawler-plugin
文件:AbstractWarPackagingTask.java
/**
* Get the encoding from an XML-file.
*
* @param webXml the XML-file
* @return The encoding of the XML-file, or UTF-8 if it's not specified in the file
* @throws java.io.IOException if an error occurred while reading the file
*/
protected String getEncoding( File webXml )
throws IOException
{
XmlStreamReader xmlReader = new XmlStreamReader( webXml );
try
{
return xmlReader.getEncoding();
}
finally
{
IOUtil.close( xmlReader );
}
}
项目:streamflyer
文件:XmlVersionModifierTest.java
@Test
public void testExampleFromJavadoc() throws Exception {
byte UTF16LE_BOM_BYTE_1 = (byte) 0xFF;
byte UTF16LE_BOM_BYTE_2 = (byte) 0xFE;
// version in prolog is 1.0
String input = "<?xml version='1.0'>";
byte[] bytes = input.getBytes("UTF-16LE");
byte[] bytesWithBom = new byte[bytes.length + 2];
bytesWithBom[0] = UTF16LE_BOM_BYTE_1;
bytesWithBom[1] = UTF16LE_BOM_BYTE_2;
System.arraycopy(bytes, 0, bytesWithBom, 2, bytes.length);
// choose the input stream to modify
ByteArrayInputStream inputStream = new ByteArrayInputStream(bytesWithBom);
// wrap the input stream by BOM skipping reader
Reader reader = new XmlStreamReader(inputStream);
// create the reader that changes the XML version to 1.1
ModifyingReader modifyingReader = new ModifyingReader(reader, new XmlVersionModifier("1.1", 8192));
// use the modifying reader instead of the original reader
String xml = IOUtils.toString(modifyingReader);
assertTrue(xml.startsWith("<?xml version='1.1'"));
}
项目:streamflyer
文件:XmlVersionModifierTest.java
private void assertXmlVersionInProlog(byte[] input, String newXmlVersion, String expectedProlog) throws Exception {
XmlVersionReader xmlVersionReader = new XmlVersionReader(new XmlStreamReader(new ByteArrayInputStream(input)));
// create the reader that modifies the XML version
ModifyingReader reader = new ModifyingReader(xmlVersionReader, createModifier(newXmlVersion, 5));
String actualProlog = IOUtils.toString(reader);
assertEquals(expectedProlog, actualProlog);
}