扩展标记语言XML(eXtensible Markup Language),是由W3C组织制定的。做为用于替代HTML语言的一种新型的标记语言,XML内部有着很多基本标准,XML就是通过与这些相关标准地结合,应用于科学计算、电子出版、多媒体制作和电子商务的。C#作为一种新型的程序语言,是.Net框架的一个重要组成部分,他和XML的关系颇深。本文就从一个方面来探讨一下这二者的关系。即:看用C#如何来创建和读取XML文档。
一. 本文程序设计和运行的软件环境:
(一).微软公司视窗2000服务器版
(二)..Net FrameWork SDK Beta 2
二. C#创建XML文档:
在本文中我们来介绍一下用C#创建XML文档的二种方法,这二种方法各有千秋,第一种创建起来更灵活,第二种创建起来更方便。
(一).C#创建XML文档的第一种方法:
这一种方法是按照按照XML的结构一步一步的构建XML文档。C#构建XML文档通过.Net FrameWork SDK中的命名空间"System.Xml"中封装的各种类来实现的。下面就按照一个XML典型文档结构来介绍一下。
(1).首先要创建一个空的XML文档:
在命名空间"System.Xml"中有一个类"XmlDocument",C#通过这个类来描述XML文档。下面是用C#创建一个XML文档。
xmldoc = new System.X ......
扩展标记语言XML(eXtensible Markup Language),是由W3C组织制定的。做为用于替代HTML语言的一种新型的标记语言,XML内部有着很多基本标准,XML就是通过与这些相关标准地结合,应用于科学计算、电子出版、多媒体制作和电子商务的。C#作为一种新型的程序语言,是.Net框架的一个重要组成部分,他和XML的关系颇深。本文就从一个方面来探讨一下这二者的关系。即:看用C#如何来创建和读取XML文档。
一. 本文程序设计和运行的软件环境:
(一).微软公司视窗2000服务器版
(二)..Net FrameWork SDK Beta 2
二. C#创建XML文档:
在本文中我们来介绍一下用C#创建XML文档的二种方法,这二种方法各有千秋,第一种创建起来更灵活,第二种创建起来更方便。
(一).C#创建XML文档的第一种方法:
这一种方法是按照按照XML的结构一步一步的构建XML文档。C#构建XML文档通过.Net FrameWork SDK中的命名空间"System.Xml"中封装的各种类来实现的。下面就按照一个XML典型文档结构来介绍一下。
(1).首先要创建一个空的XML文档:
在命名空间"System.Xml"中有一个类"XmlDocument",C#通过这个类来描述XML文档。下面是用C#创建一个XML文档。
xmldoc = new System.X ......
在Perl中解析XML的方法最常见的就是使用 XML::DOM
和 XML::Simple了。
XML::DOM过于庞大,而且解析结果是一个DOM树,操作也不方便。
对于小型且不复杂的XML文件,XML::DOM真是杀鸡用牛刀。
这时就轮到轻便的XML::Simple上场了。
XML::Simple如其名,真的很简单。假设XML内容如下:
<opt>
<user login="grep" fullname="Gary R Epstein" />
<user login="stty" fullname="Simon T Tyson" >
<session pid="12345"/>
</user>
<text>This is a test.</text>
</opt>
那么只需这样写:
use XML::Simple;
use Data::Dumper;
$xml = XMLin('sample.xml');
print Dumper($xml);
就可以轻而易举地将XML解析成一个hash,然后用foreach依次处理即可。
$VAR1 = {
'text' => 'This is a test.',
'user' => [
{
'fullname' => 'Gary R Epstein',
'login' => 'grep'
},
{
......
Perl的XML::DOM功能很强大,利用它可以轻易地分析XML文档,也可以建立XML文档。
常用的类包括:
XML::DOM::Node:所有类的基类,表示一个XML节点。
XML::DOM::Parser:XML解析器,将XML字符串解析成XML::DOM::Document对象。
XML::DOM::Document:指向XML文档的根节点。
XML::DOM::Element:指向一个元素,通常由XML::DOM::Document->createElement元素生成。
其他的类可以查看CPAN
上关于 XML::DOM 的说明。
建立XML文档的通常做法是:首先通过 XML::DOM::Parser生成一个Document对象,
再通过这个Document对象的 createElement、createTextNode 等方法生成各个节点,
最后通过 XML::DOM::Node->appendChild 方法将节点添加到Document对象中,
最后再通过 toString 方法将 Document 转换为字符串输出。
下面是建立XML文档的一个例子:
#!/usr/bin/perl
use XML::DOM;
use XML::Twig;
# 创建XML的最外层元素
my $xml = "<MyXML/>";
# 通过XML::DOM::Parser解析外层元素,创建基础XML文档
# XML::DOM::Parser::parse函数的返回值为 XML::DOM::Document 类
my $parser = new XML::DOM::Parser;
my $dom = $parser->parse($xml);
......
今天在CC上看到evangel在招人,上面写了一条数据解析,我想应该就是对XML的解析吧,暂且这样理解了,呵呵。下午搜索了一点东西自己弄了一个XML然后读读看看,现在仅仅是读出了一些东西,先保存代码,待后续更新!
这个是我创建的xml文件,用于测试用的:
<?xml version="1.0" encoding="UTF-8"?>
<book>
<book1>
<author>zhangsan</author>
<title>Hello this is book1</title>
<content>book1 is very good for testing!</content>
</book1>
<book2>
<author>lisi</author>
<title>Hello this is book2</title>
<content>book2 is very good for testing!</content>
</book2>
<book3>
<author>wangwu</author>
<title>Hello this is book3</title>
<content>book3 is very good for testing!</content>
</book3>
</book>
对xml进行解析需要使 ......
今天在CC上看到evangel在招人,上面写了一条数据解析,我想应该就是对XML的解析吧,暂且这样理解了,呵呵。下午搜索了一点东西自己弄了一个XML然后读读看看,现在仅仅是读出了一些东西,先保存代码,待后续更新!
这个是我创建的xml文件,用于测试用的:
<?xml version="1.0" encoding="UTF-8"?>
<book>
<book1>
<author>zhangsan</author>
<title>Hello this is book1</title>
<content>book1 is very good for testing!</content>
</book1>
<book2>
<author>lisi</author>
<title>Hello this is book2</title>
<content>book2 is very good for testing!</content>
</book2>
<book3>
<author>wangwu</author>
<title>Hello this is book3</title>
<content>book3 is very good for testing!</content>
</book3>
</book>
对xml进行解析需要使 ......
工具:myeclipse 6.5
json中文官方:http://www.json.org/json-zh.html
新建项目webs,在WebRoot下新建目录json
xml的解析方式:
------------------------------------------------------------------
1.新建NewFile.xml
<?xml version="1.0" encoding="UTF-8"?>
<userinfo>
<name>kava</name>
<city>wuhan</city>
<tel>88768675</tel>
</userinfo>
2.新建xml_1.html
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>xml</title>
<script type="text/javascript">
var xmlHttp;
function showDetails() {
xmlHttp = GetXmlHttpObject();
&nbs ......
工具:myeclipse 6.5
json中文官方:http://www.json.org/json-zh.html
新建项目webs,在WebRoot下新建目录json
xml的解析方式:
------------------------------------------------------------------
1.新建NewFile.xml
<?xml version="1.0" encoding="UTF-8"?>
<userinfo>
<name>kava</name>
<city>wuhan</city>
<tel>88768675</tel>
</userinfo>
2.新建xml_1.html
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>xml</title>
<script type="text/javascript">
var xmlHttp;
function showDetails() {
xmlHttp = GetXmlHttpObject();
&nbs ......
function init() {
var viewChartID = 0;
var viewChartSum = "" ;
reportName = document.getElementById("reportName").value;
xmlDoc=loadXMLDoc("./charreport/xml/viewChart.xml");
x=xmlDoc.getElementsByTagName('viewChart')[0].childNodes;
for (i=0;i<x.length;i++)
{
//取得xml中的group 的属性 name
var n=x[i].getAttribute('name');
if(reportName==n) {
var m = x[i].childNodes;
for(var y=0;y<m.length;y++) {
viewChartName = m[y].childNodes[0].nodeValue;
viewChartSum = viewChartSum+"<div id='"+i+"'><a href=javascript:gochart('"+viewChartName+"')>"+viewChartName+"</a></div>";
document.getElementById("viewChart1").innerHTML = viewChartSum;
document.getElementById("viewChart2").innerHTML = viewChartSum;
}
}
}
}
function loadXMLDoc(dname)
......