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);
    }