XML解析中的namespace初步了解
初学者在解析XML文件的时候最容易遇到的问题恐怕就是XML的namespace了,本文旨在对namespace做一个简要的介绍。
namespace的意义无需多说,和C++,C#等高级语言一样,XML同样面临大量文件放在一起的时候变量重名的问题,所以要用namespace把名字相同意义不同的变量隔离开。本文着重讨论namespace的解析方法。
以下是一个简单的XML文件:
<root> <child id = ‘0’> hello world </child> <child id='1'> one </child> </root>登录后复制
这个例子里面没有namespace,大家初学XML时接触的例子恐怕都是这样的。这种例子具有误导性,初学者解析出了hello world之后就兴高采烈的拿同样的程序去解析实际的XML文件,往往铩羽而归。下面是一段豆瓣API返回的XML文件
<?xml version="1.0" encoding="UTF-8"?> <entry xmlns="http://www.w3.org/2005/Atom" xmlns:db="http://www.douban.com/xmlns/" xmlns:gd="http://schemas.google.com/g/2005" xmlns:opensearch="http://a9.com/-/spec/opensearchrss/1.0/"> <id>http://api.douban.com/event/10069638</id> <title>Debugging the Web </title> <category scheme="http://www.douban.com/2007#kind" term="http://www.douban.com/2007#event.salon"/> <author> <link href="http://api.douban.com/people/1057620" rel="self"/> <link href="http://www.douban.com/people/aka/" rel="alternate"/> <link href="http://t.douban.com/icon/u1057620-16.jpg" rel="icon"/> name>胖胖的大头鱼</name> <uri>http://api.douban.com/people/1057620</uri> </author> <db:attribute name="invite_only">no</db:attribute>登录后复制
看到这么多www就不想看直接跳过,然后看到熟悉的
这行没看头,看下面这里
这么说就比较清楚了,但那个http://www.w3.org/2005/Atom到底是个啥啊,连个简称都没有。哎,意识到这个就对了,他的简称就是””,空串。这东西被称为default namespace,那些看上去没有前缀的都是在这个namespace下的。所以那个
那么该如何解析呢?这里提供一个样例程序,希望对大家有帮助。这个代码可以在WP7上运行。我还有一个版本用的XmlDocument,尼玛WP7上木有这个类,坑爹的。。。
string file = @"C:\Users\v-menlin\Documents\Visual Studio 2010\Projects\test\test\test.xml"; XDocument doc = XDocument.Load( file ); //use following code to parse a string //XDocument doc = XDocument.Parse( string ); //对于XML文件中所有的没加类似db:这种的元素,用下列方法 XNamespace d = @"http://www.w3.org/2005/Atom"; foreach ( XElement element in doc.Descendants( d + "title" ) ) { Console.WriteLine( element.Value ); } //<author>下面包含了<link>,一下的例子还示例了如何读取属性。 foreach ( XElement element in doc.Descendants( d + "author" ) ) { foreach ( XElement inelement in element.Descendants( d + "link" ) ) { Console.WriteLine( inelement.Attribute( "href" ).Value ); Console.WriteLine( inelement.Attribute( "rel" ).Value ); } } Console.WriteLine(); //对于加了冒号前缀的元素,使用下列代码 XNamespace db = @"http://www.douban.com/xmlns/"; foreach ( XElement element in doc.Descendants( db + "attribute" ) ) { Console.WriteLine( element.Attribute( "name" ).Value ); Console.WriteLine( element.Value ); } //其实只是NameSpace的头部换了一下。 //下面列出其他几个常用头部,直接换用。 XNamespace gd = @"http://schemas.google.com/g/2005"; XNamespace opensearch = @"http://a9.com/-/spec/opensearchrss/1.0/";登录后复制
以上是XML解析中的namespace初步了解的详细内容。更多信息请关注PHP中文网其他相关文章!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

热门话题

XML文件可以用PPT打开吗?XML,即可扩展标记语言(ExtensibleMarkupLanguage),是一种被广泛应用于数据交换和数据存储的通用标记语言。与HTML相比,XML更加灵活,能够定义自己的标签和数据结构,使得数据的存储和交换更加方便和统一。而PPT,即PowerPoint,是微软公司开发的一种用于创建演示文稿的软件。它提供了图文并茂的方

使用Python实现XML数据的合并和去重XML(eXtensibleMarkupLanguage)是一种用于存储和传输数据的标记语言。在处理XML数据时,有时候我们需要将多个XML文件合并成一个,或者去除重复的数据。本文将介绍如何使用Python实现XML数据的合并和去重的方法,并给出相应的代码示例。一、XML数据合并当我们有多个XML文件,需要将其合

使用Python实现XML数据的筛选和排序引言:XML是一种常用的数据交换格式,它以标签和属性的形式存储数据。在处理XML数据时,我们经常需要对数据进行筛选和排序。Python提供了许多有用的工具和库来处理XML数据,本文将介绍如何使用Python实现XML数据的筛选和排序。读取XML文件在开始之前,我们需要先读取XML文件。Python有许多XML处理库,

Python中的XML数据转换为CSV格式XML(ExtensibleMarkupLanguage)是一种可扩展标记语言,常用于数据的存储和传输。而CSV(CommaSeparatedValues)则是一种以逗号分隔的文本文件格式,常用于数据的导入和导出。在处理数据时,有时需要将XML数据转换为CSV格式以便于分析和处理。Python作为一种功能强大

使用PHP将XML数据导入数据库引言:在开发中,我们经常需要将外部数据导入到数据库中进行进一步的处理和分析。而XML作为一种常用的数据交换格式,也经常被用来存储和传输结构化数据。本文将介绍如何使用PHP将XML数据导入数据库。步骤一:解析XML文件首先,我们需要解析XML文件,提取出需要的数据。PHP提供了几种解析XML的方式,其中最常用的是使用Simple

Python实现XML和JSON之间的转换导语:在日常的开发过程中,我们常常需要将数据在不同的格式之间进行转换。XML和JSON是常见的数据交换格式,在Python中,我们可以使用各种库来实现XML和JSON之间的相互转换。本文将介绍几种常用的方法,并附带代码示例。一、XML转JSON在Python中,我们可以使用xml.etree.ElementTree模

使用Python处理XML中的错误和异常XML是一种常用的数据格式,用于存储和表示结构化的数据。当我们使用Python处理XML时,有时可能会遇到一些错误和异常。在本篇文章中,我将介绍如何使用Python来处理XML中的错误和异常,并提供一些示例代码供参考。使用try-except语句捕获XML解析错误当我们使用Python解析XML时,有时候可能会遇到一些

Python解析XML中的特殊字符和转义序列XML(eXtensibleMarkupLanguage)是一种常用的数据交换格式,用于在不同系统之间传输和存储数据。在处理XML文件时,经常会遇到包含特殊字符和转义序列的情况,这可能会导致解析错误或者误解数据。因此,在使用Python解析XML文件时,我们需要了解如何处理这些特殊字符和转义序列。一、特殊字符和
