java saxreader 生成xml_java – 最佳实践:为XMLReader创建SAX解析器

XMLReader通过一系列步骤来识别要使用的驱动器.引用文档

>如果系统属性org.xml.sax.driver具有值,则使用该值

作为XMLReader类名.

> JAR“服务API”用于查看

对于META-INF / services / org.xml.sax.driver文件中的类名称

jarfiles可用于运行时.

> SAX解析器分发是

强烈建议提供一个默认的XMLReader类名

仅在先前的选项(在此列表中)不生效时才会生效

成功的.

>最后,如果ParserFactory.makeParser()可以返回一个

系统默认SAX1解析器,该解析器包装在一个

ParserAdapter. (这是SAX1环境的迁移辅助工具,其中

org.xml.sax.parser系统属性通常可用.)

看看AWS SDK的代码……

public XmlResponsesSaxParser() throws AmazonClientException {

// Ensure we can load the XML Reader.

try {

xr = XMLReaderFactory.createXMLReader();

} catch (SAXException e) {

// oops, lets try doing this (needed in 1.4)

System.setProperty("org.xml.sax.driver", "org.apache.crimson.parser.XMLReaderImpl");

try {

// Try once more...

xr = XMLReaderFactory.createXMLReader();

} catch (SAXException e2) {

throw new AmazonClientException("Couldn't initialize a sax driver for the XMLReader");

}

}

}

我不喜欢这些代码.

> SaxException e的根本原因被吃掉了.

> SaxException e2的根本原因也被吃掉了.代码应该做的最少是打印提示根本原因的警告.

>在级别框架代码中使用System.setProperty()可能会导致一些难以调试的问题.

这些要点使调试问题变得更加困难.我能做出的最有根据的猜测是,深红色解析器可以在一个类加载路径中访问,但在另一个类加载路径中不存在.找到问题的一种结论性方法是在代码上设置一个断点,该代码试图实例化读者并找出潜在的根本原因.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
解析XML文件有多种方式,其中两种常用的方法是使用SAXReader和DocumentHelper。下面分别介绍一下这两种方法的使用。 使用SAXReader解析XML字符串: 1.首先导入相关的包和类: ```java import java.io.StringReader; import java.util.List; import org.dom4j.Document; import org.dom4j.Element; import org.dom4j.io.SAXReader; ``` 2.将XML字符串转换为输入流,并将输入流传给SAXReader对象: ```java String xmlString = "<root><person><name>John</name></person></root>"; SAXReader reader = new SAXReader(); Document document = reader.read(new StringReader(xmlString)); ``` 3.获取根节点并遍历子节点: ```java Element root = document.getRootElement(); List<Element> personList = root.elements("person"); for (Element person : personList) { String name = person.elementText("name"); System.out.println(name); } ``` 使用DocumentHelper解析XML字符串: 1.首先导入相关的包和类: ```java import java.util.List; import org.dom4j.Document; import org.dom4j.Element; import org.dom4j.Node; import org.dom4j.io.DocumentHelper; ``` 2.使用DocumentHelperXML字符串转换为Document对象: ```java String xmlString = "<root><person><name>John</name></person></root>"; Document document = DocumentHelper.parseText(xmlString); ``` 3.获取根节点并遍历子节点: ```java Element root = document.getRootElement(); List<Node> personList = root.selectNodes("person"); for (Node person : personList) { String name = ((Element) person).elementText("name"); System.out.println(name); } ``` 以上就是使用SAXReader和DocumentHelper解析XML字符串的方法。需要注意的是,这里使用了dom4j库进行XML解析,因此需要先导入dom4j的相关包。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值