我正在解析一个作为InputStream读入的xml文档,我看到的一个例子是首先在javax.xml.transform.stream.StreamSource中对流进行分段.当我在读入流时解析流时,为什么会这样做?Java API的描述没有帮助:"以XML标记流的形式充当转换源的持有者."
StreamSource示例:
XMLInputFactory xif = XMLInputFactory.newFactory();
StreamSource reportStream =
new StreamSource(new URL("file:///myXmlDocURL.xml").openStream());
XMLStreamReader xmlReader = xif.createXMLStreamReader(reportStream);
xmlReader.nextTag();
while (xmlReader.hasNext()) {
if (xmlReader.getLocalName().equals("attributeICareAbout")) {
String tempTagValue = xmlReader.getText();
xmlReader.nextTag();
}
}
xmlReader.close();
Run Code Online (Sandbox Code Playgroud)
没有StreamSource的示例:
XMLInputFactory xif = XMLInputFactory.newFactory();
XMLStreamReader xmlReader =
xif.createXMLStreamReader(new URL("file:///myXmlDocURL.xml").openStream());
xmlReader.nextTag();
while (xmlReader.hasNext()) {
if (xmlReader.getLocalName().equals("attributeIcareAbout")) {
String tempTagValue = xmlReader.getText();
xmlReader.nextTag();
}
}
xmlReader.close();
Run Code Online (Sandbox Code Playgroud)
它是一个抽象,因此相同的解析代码可以用于各种源(注意: StreamSourceimplements Source):
从文件中获取XML只是一种可能性.还有SourceDOM(DOMSource),SAX(SAXSource),StAX(StAXSource)和JAXB(JAXBSource)的实现.
| 归档时间: |
|
| 查看次数: |
12432 次 |
| 最近记录: |