首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >XML SAX:在一个示例XML文件中,Explain结果为`qName`和`localName`

XML SAX:在一个示例XML文件中,Explain结果为`qName`和`localName`
EN

Stack Overflow用户
提问于 2012-02-25 13:35:47
回答 1查看 1.6K关注 0票数 2

我正在测试如何使用SAXParser并理解它的组件。下面是我用来测试的XML文件:

代码语言:javascript
复制
<?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测试这个文件时,下面是我的输出中的一些行:

代码语言:javascript
复制
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 )。

但是在上面的结果中,在元素rsschannel (以及我还没有发布的所有其他元素)中,local Name是空的!

谁能给我解释一下。

谢谢:)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-02-25 16:30:22

这在Javadoc中略显模糊:

URI -命名空间uri;如果元素没有命名空间URI或未执行命名空间处理,则为空字符串

localName -本地名称(无前缀),如果未执行命名空间处理,则为空字符串

qName -限定名称(带前缀),如果限定名称不可用,则为空字符串

atts -附加到元素的属性。如果没有属性,则为空的属性对象。此对象在startElement返回后的值未定义

在关闭命名空间处理的情况下,仅返回qName (不带前缀)。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9441593

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档