我正在测试如何使用SAXParser并理解它的组件。下面是我用来测试的XML文件:
<?xml-stylesheet href="/externalflash/NASA_Detail/NASA_Detail.xsl" type="text/xsl"?>
<rss version="2.0">
<channel>
<title>NASA Image of the Day</title>
<link>http://www.nasa.gov/multimedia/imagegallery/index.html</link>
<description>The latest NASA "Image of the Day" image.</description>
<language>en-us</language>
<docs>http://blogs.law.harvard.edu/tech/rss</docs>
<managingEditor>yvette.smith-1@nasa.gov</managingEditor>
<webMaster>brian.dunbar@nasa.gov</webMaster>
<item xmlns:java_code="xalan://gov.nasa.build.Utils1">
<title>Expedition 30 Cosmonauts Perform Spacewalk</title>
<link>http://www.nasa.gov/multimedia/imagegallery/image_feature_2181.html</link>
<description>This image of Russian cosmonauts Oleg Kononenko and Anton Shkaplerov, both Expedition 30 flight engineers, was taken during a spacewalk on Thursday, Feb. 16, 2012. During the six-hour, 15-minute spacewalk, Kononenko and Shkaplerov moved the Strela-1 crane from the Pirs Docking Compartment in preparation for replacing it in 2012 with a new laboratory and docking module. The duo used another boom, the Strela-2, to move the hand-operated crane to the Poisk module for future assembly and maintenance work. Both telescoping booms extend like fishing rods and are used to move massive components outside the station. On the exterior of the Poisk Mini-Research Module 2, they also installed the Vinoslivost Materials Sample Experiment, which will investigate the influence of space on the mechanical properties of the materials. The spacewalkers also collected a test sample from underneath the insulation on the Zvezda Service Module to search for any signs of living organisms. Both spacewalkers wore Russian Orlan spacesuits bearing blue stripes and equipped with NASA helmet cameras. Image Credit: NASA</description>
<guid isPermaLink="true">http://www.nasa.gov/multimedia/imagegallery/image_feature_2181.html</guid>
<pubDate>Wed, 22 Feb 2012 00:00:00 EST</pubDate>
<enclosure length="1234567" type="image/jpeg" url="http://www.nasa.gov/images/content/624856main_image_2181_516-387.jpg"/>
</item>
</channel>
</rss>当我使用SAXParser测试这个文件时,下面是我的输出中的一些行:
start Element: rss
Local Name // this line I don't know why null
qNam: rss
start characters:
start Element: channel
Local Name
qNam: channel
start characters: 我的问题是:在我的XML文件中,没有namespace,所以每个元素都属于它的默认namespace,这就是为什么qName等于local Name (因为qName没有prefix )。
但是在上面的结果中,在元素rss和channel (以及我还没有发布的所有其他元素)中,local Name是空的!
谁能给我解释一下。
谢谢:)
发布于 2012-02-25 16:30:22
这在Javadoc中略显模糊:
URI -命名空间uri;如果元素没有命名空间URI或未执行命名空间处理,则为空字符串
localName -本地名称(无前缀),如果未执行命名空间处理,则为空字符串
qName -限定名称(带前缀),如果限定名称不可用,则为空字符串
atts -附加到元素的属性。如果没有属性,则为空的属性对象。此对象在startElement返回后的值未定义
在关闭命名空间处理的情况下,仅返回qName (不带前缀)。
https://stackoverflow.com/questions/9441593
复制相似问题