0 0

stax解析中属性的设置5

在网上搜到这样的内容:

写道
如果应用程序不关心 DTD,可以通过将解析器的 javax.xml.stream.supportDTD 属性设置为 false 来关闭该特性

 

我现在需要解析一个xml文件,但我不需要关心他的dtd,我该怎么设置来让解析程序知道呢?

 

我用的是stax解析xml文件。

 

xml文件开始部分如下:

<?xml version="1.0" encoding="gb2312"?>
<!DOCTYPE NMSI_PM SYSTEM "NPI_PM.DTD">

我的解析代码如下:

XMLInputFactory factory = XMLInputFactory.newInstance();

XMLStreamReader reader = factory.createXMLStreamReader(isr);
			
while (reader.hasNext()) {
	int eventType = reader.next();
	switch (eventType) {
		case XMLStreamConstants.START_ELEMENT:
			//code to handle					break;
		case XMLStreamConstants.CHARACTERS:
			//code to handle					break;	
		case XMLStreamConstants.END_ELEMENT:
			//handle
                                                  break;
                  }
}

reader.close();

 

我没有对dtd进行处理,但运行时就会报错:找不到dtd文件。

 

我想让stax不在关心dtd声明的部分,该怎么设置呢?

2012年9月04日 11:29

1个答案 按时间排序 按投票排序

0 0

采纳的答案

试试 这个呢
XMLInputFactory  f = XMLInputFactory.newInstance();
f.setProperty("javax.xml.stream.supportDTD",Boolean.FALSE);
f.setProperty("http://java.sun.com/xml/stream/properties/ignore-external-dtd",Boolean.TRUE);

2012年9月04日 11:41

相关推荐

    stax 解析xml demo project

    STAX解析XML的过程是通过事件驱动的,即在解析XML时,解析器会触发一系列事件,如遇到元素开始、元素结束、文本节点等,开发者注册监听这些事件,然后在事件触发时进行相应的处理。相比于DOM(Document Object ...

    stax+jaxb进行xml解析

    1. **StAX解析流程**: - 创建XMLInputFactory实例,这是解析XML的起点。 - 使用XMLInputFactory创建XMLStreamReader,这是读取XML事件的对象。 - 通过XMLStreamReader逐个处理事件,如StartElement、EndElement...

    用Stax组装及解析XML

    使用StAX解析XML文档则需要借助`XMLInputFactory`和`XMLStreamReader`类完成。下面是一个简单的例子: ```java XMLInputFactory factory = XMLInputFactory.newInstance(); XMLStreamReader reader = factory....

    java xml 4 种 解析xml 方法 sax jdom dom stAX

    SAX是一种事件驱动的解析器,它不会一次性加载整个XML文档到内存中,而是逐行读取,当遇到文档中的元素、属性等时,会触发相应的事件处理器方法。这种方式对内存消耗较小,适合处理大文件。SAX解析器的核心是...

    stax-api 1.0.1

    STAX(Streaming API for XML)是Java平台上的一个XML处理API,它提供了对XML文档的事件驱动解析。与DOM(Document Object Model)不同,STAX不是加载整个XML文档到内存中形成一个树形结构,而是通过事件(如开始...

    Java解析单标签中的属性

    本文将深入探讨如何使用Java的SAXBuilder类来解析XML文档中的单个标签及其属性,基于给定的代码示例。 ### Java解析单标签中的属性 #### 1. **导入必要的包** 在解析XML之前,首先需要导入处理XML相关的包。给定...

    jaxb+stax+demo

    7. **实战应用**:这样的演示可能包括一个简单的Java应用程序,该程序读取XML文件,使用STAX解析器进行流式处理,然后利用JAXB将解析的事件转化为Java对象。反过来,也可以将Java对象转换为XML并写入新的XML文件。 ...

    Stax组装及解析XML的例子

    Axis2在性能上的提升也得益于采用StAX解析XML。 总之,StAX提供了一种高效、低内存开销的方式来处理XML,尤其适用于处理大型XML文档和需要高性能的应用场景。通过组装和解析XML,开发人员可以灵活地在应用程序之间...

    Java6.0新特性之StAX--全面解析Java XML分析技术

    在StAX中,解析XML文档有两种主要的角色:XMLStreamReader(用于读取)和XMLStreamWriter(用于写入)。XMLStreamReader允许开发者按需逐事件地读取XML,而XMLStreamWriter则可以逐事件地构造XML文档。这样,开发者...

    stax-api-1.0.1、stax2-api-3.1.1、woodstox-core-asl-4.1.1

    STAX(Streaming API for XML)是一种用于处理XML的Java API,它提供了事件驱动的解析方式,使得开发者可以高效地读取和写入XML文档。在Java世界中,STAX提供了比DOM(Document Object Model)更高效的处理XML的方式...

    stax-api-1.0.1 java 操作 xml 文件 一个很好用的包

    STAX的核心理念是事件驱动,即解析XML时,每遇到一个XML元素或属性,都会触发一个相应的事件,程序通过响应这些事件来处理XML数据。与DOM(Document Object Model)不同,STAX不需要一次性加载整个XML文档到内存,...

    staxmate-with-stax2-1.3.0.jar包

    STAX是Java中的一个XML处理API,它支持两种模式:事件驱动的XML解析和生成。在解析模式下,STAX通过一系列的事件(如开始元素、结束元素、字符数据等)来读取XML文档。而在生成模式下,可以逐个添加这些事件来构建...

    java心电图xml解析.zip

    在源代码中,可能会看到使用Java的`javax.xml.parsers`和`org.w3c.dom`等库进行DOM解析,或者使用`javax.xml.stream`进行StAX解析。对于SAX解析,可能涉及`org.xml.sax`库和自定义的事件处理器。 通过研究这个...

    使用StAX进行高效的XML处理中文版

    而SAX模型则是一种基于事件的模型,它不会将整个文档加载到内存中,而是当解析器遇到文档中的特定事件(如元素开始、元素结束等)时通知调用者,这种方式适用于只需要读取部分数据的场景,但缺乏DOM提供的随机访问...

    java使用stax技术操作XML文档.doc

    然后可以通过调用setProperty()方法配置工厂,例如设置合并相邻字符段的属性。接着,根据需求创建XMLStreamReader或XMLEventReader。创建XMLStreamReader的代码如下: ```java XMLInputFactory factory = ...

    xml文件解析工厂

    3. StAX解析:StAX是基于流的解析器,允许开发者通过迭代器按需读取XML元素,既能节省内存,又提供了更细粒度的控制,介于DOM和SAX之间。 "XmlBaseFactory.java" 文件很可能是一个实现了XML解析工厂的类,它可能...

    xml解析例子得到各个节点信息

    在Java中,`javax.xml.stream.XMLInputFactory`和`XMLStreamReader`可用于创建StAX解析器,通过`nextEvent()`方法逐个处理事件,获取节点和属性信息。 5. **XPath**: XPath是XML路径语言,用于查找XML文档中的...

    XML解析支持库

    3. StAX解析器:也称为流式API,允许开发者通过迭代器逐个读取XML元素,既能避免内存占用过多,又能提供一定的灵活性。 XML解析支持库220版静态版EXMLParserfne可能是某个特定的XML解析库的版本,但未提供足够信息...

Global site tag (gtag.js) - Google Analytics