- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我对此很陌生,那么为什么当我想在 StartElement() 中打印 NAME 元素的值时,对于所有 3 个元素,它都会打印 null ?
class Test {
public static void main(String args[]) {
try {
SAXParserFactory factory = SAXParserFactory.newInstance();
SAXParser saxParser = factory.newSAXParser();
DefaultHandler handler = new DefaultHandler() {
public void startElement(String uri, String localName, String qName, Attributes attributes)
throws SAXException {
if (qName.equals("NAME")) {
String str = attributes.getValue("NAME");
System.out.println(str);
}
}
};
saxParser.parse(new InputSource(new StringReader(xmlString)), handler);
} catch (Exception e) {
e.printStackTrace();
}
}
static String xmlString = "<PHONEBOOK>" +
" <PERSON>" +
" <NAME>Joe Wang</NAME>" +
" <EMAIL>joe@yourserver.com</EMAIL>" +
" <TELEPHONE>202-999-9999</TELEPHONE>" +
" <WEB>www.java2s.com</WEB>" +
" </PERSON>" +
" <PERSON> " +
"<NAME>Karol</NAME>" +
" <EMAIL>karol@yourserver.com</EMAIL>" +
" <TELEPHONE>306-999-9999</TELEPHONE>" +
" <WEB>www.java2s.com</WEB>" +
" </PERSON>" +
" <PERSON>" +
" <NAME>Green</NAME>" +
" <EMAIL>green@yourserver.com</EMAIL>" +
" <TELEPHONE>202-414-9999</TELEPHONE>" +
" <WEB>www.java2s.com</WEB>" +
" </PERSON>" +
" </PHONEBOOK>";
}
最佳答案
您的 XML 没有任何属性。所以这个:
String str = attributes.getValue("NAME");
System.out.println(str);
...永远不会打印任何内容。
从外观上看,您想要打印 NAME 元素的内容。因此,当您位于 NAME 元素中时,您需要处理 characters
事件。
顺便问一下,您必须使用SAX吗?根据我的经验,与使用类似 DOM 的模型相比,这是一种痛苦(例如使用 JDOM 或其他 API - 内置的有点痛苦)。
<小时/>如果您可以控制 XML,则另一种方法是开始使用属性:
<PERSON NAME="Joe Wang"
EMAIL="joe@yourserver.com"
TELEPHONE="202-999-9999"
WEB="www.java2s.com" />
然后当您获取PERSON
元素时,您可以使用attributes.getValue("NAME")
。
关于java - 使用 SAXParser 解析 XML 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6530650/
我曾经使用 Android 单元测试运行我的单元测试,但后来切换到使用 Robolectric 的 Java 单元测试。我注意到使用 SaxParser DefaultHandler 的不同之处。基本
我有一个 Java SAXparser,可以使用 parse(new InputSource(conn.getInputStream())) 下载和解析。不幸的是,有时在下载站点的 xml 时会出现错
我有一个java类,它解析xml文件,并将其内容写入MySQL。一切正常,但问题是当 xml 文件包含无效的 unicode 字符时,会引发异常并且程序停止解析文件。 我的提供商每天都会发送此 xml
我正在为 Android 开发 RSS 提要阅读器,并且为了解析 XML 文件,我使用 SAX API。问题是,在解析数据时,一些文本在一些随机选择的标签中以随机方式被截断(我的意思是同一标签的不同实
我有 xml 结构 id dataTitle title1 title2 我想解析它并仅将标题元素保存在条目下的列表中。如何在
我有一个 org.xml.sax.helpers.DefaultHandler 的实现,它工作正常,除非它出现这样的情况: Jiří Bárta 字符方法被重写为: @O
如果我在 ansi xml 文件中放入一个 utf8 字符 » 并尝试使用 SAXParser 解析它,那么它的解析不会出现任何错误。为什么它没有抛出任何异常? 示例 xml 文件。保存为ansi编码
这很奇怪.. 我有一个 DefaultHandler,它实际上可以很好地处理所有事情,但有时,没有明显的原因,它会给我 0 而不是正确的值。这种情况每次都在同一个地方发生,所以有问题,但我不知道是什么
我在 android/java 上用 SAXParser 等做一些简单的 SAXParsing 它可以正确解析文件,但是当它遇到一些特殊字符时会打嗝,例如如果它解析下面这个 xml: 当它在
我正在尝试构建我的第一个 XML 模式 validator 作为我的代码库和许多项目中的可重用组件。我花了一整天的时间尝试遵循示例并对其进行编码,现在已经启动并运行了概念验证。 唯一的问题是,它给了我
我正在使用 saxparser 来从文件中获取 xml 标签内容。对于非长数据 xml,一切正常。然而,当到达某个位置时,characters() 事件收到截断的 ch[] 并被触发两次。例如,123
我在 Android 应用程序中使用 SAX 解析器一次读取一些提要。脚本执行如下。 // Begin FeedLezer
我有以下格式的 XML: ... "Paul McCartney" "John Lennon" ... SAXParser 一旦到达电子邮件地址就会抛出异常。它认为是一个 XML 元素,一旦遇到
我在 Java 中使用 SAXParser。 有没有办法在使用 SAXParser 解析 xml 时关闭转义? 例如,我有以下 xml: „title” 我想通过c
我正在查看http://docs.oracle.com/javaee/1.4/tutorial/doc/JAXPSAX9.html 。 您可以通过两种方式将 xml 文件与架构关联起来:在应用程序中或
我正在开发一个小型应用程序,该应用程序使用 xml 文件来打印章节的 ArrayList,后者又指向特定的 html 文件。 我使用本教程开始:http://www.anddev.org/novice
我正在向 SAXParser 传递一个 XML 文件和一个处理程序,但收到此错误: parse 方法的属性定义为 (File, DefaultHandler) ,它完全匹配,所以我不确定哪里出错了。完
我需要使用一组模式对传入的 XML 片段执行一些验证。 所有这些架构共享相同的 targetNamespace,但分为不同的 .xsd 文件。 我的java程序正在将每个xsd文件加载到InputSo
我不知道如何正确表达这个问题,但我会举一个例子。 假设我想知道标签block的属性type我可以 if (localName == "block") { int type = Integer
PARAMETRI: vrednost: 2.0 rank: 0.75 − objekt: irc.kis.model.pomozniRazredi.CasovniInterval.CasovniI
我是一名优秀的程序员,十分优秀!