??xml version="1.0" encoding="utf-8" standalone="yes"?>
http://www.google.cn/search?complete=1&hl=zh-CN&newwindow=1&q=google&btnG=Google+%E6%90%9C%E7%B4%A2&meta=&aq=-1&oq=
complete
hlQ区?br />
newwindow
qQ查询关键字
btnG
meta
aq
oq
http://www.google.cn/search?会蟩转到http://www.google.cn/webhp面Q?br />
http://www.google.cn/search?q=123可以搜索,搞不懂;
XSLT ?XSL 转换QXSL TransformationsQ,
XSLT ?XSL 中最重要的部分,
XSLT 可将一U?XML 文档转换为另外一U?XML 文档Q?br />
XSLT 使用 XPath ?XML 文档中进行导航,
二,XSLT 元素
<xsl:template> 元素Q?lt;xsl:template> 元素用于构徏模板。match 属性用于关?XML 元素和模ѝmatch 属性也可用来ؓ整个文定义模板。match 属性的值是 XPath 表达式(举例Qmatch="/" 定义整个文Q;
<xsl:value-of> 元素Q?lt;xsl:value-of> 元素用于提取某个选定节点的|q把值添加到转换的输出流?br />
<xsl:for-each> 元素Q?lt;xsl:for-each> 元素可用于选取某个指定节点集的每个 XML 元素Q?br />
<xsl:sort> 元素Q用于对l果q行排序Q?br />
<xsl:if> 元素Q用于放|针?XML 文g内容的条件测试;
<xsl:choose> 元素Q用于结?<xsl:when> ?<xsl:otherwise> 来表辑֤重条件测试;
<xsl:apply-templates> 元素Q?lt;xsl:apply-templates> 元素可把一个模板应用于当前的元素或者当前元素的子节炏V假如我们向 <xsl:apply-templates> 元素d一?select 属性,此元素就会仅仅处理与属性值匹配的子元素。我们可以?select 属性来规定子节点被处理的顺序;
基本|或称原子|Atomic valueQ:基本值是无父或无子的节点?br />
目QItemQ:目是基本值或者节炏V?br />
节点关系
ӞParentQ:每个元素以及属性都有一个父Q?br />
子(ChildrenQ:元素节点可有零个、一个或多个子,
同胞QSiblingQ:拥有相同的父的节?br />
先辈QAncestorQ:某节点的父、父的父Q等{,
后代QDescendantQ:某个节点的子Q子的子Q等{;
XPath 使用路径表达式来选取 XML 文中的节点或节炚w。节Ҏ通过沿着路径 (path) 或者步 (steps) 来选取的,
nodename 选取此节点的所有子节点Q?br />
/ 从根节点选取 Q?br />
// 从匹配选择的当前节炚w择文中的节点Q而不考虑它们的位|?Q?br />
. 选取当前节点 Q?br />
.. 选取当前节点的父节点 Q?br />
@ 选取属?Q?/p>
谓语QPredicatesQ:谓语用来查找某个特定的节Ҏ者包含某个指定的值的节点。谓语被嵌在Ҏ号中。函数或者表辑ּQ?br />
选取未知节点QXPath 通配W可用来选取未知?XML 元素?br />
* 匚wM元素节点
@* 匚wM属性节?
node() 匚wMcd的节?
选取若干路径Q通过在\径表辑ּ中?#8220;|”q算W,您可以选取若干个\径?/p>
四,XPath AxesQ坐标uQ:轴可定义某个相对于当前节点的节点集?/p>
ancestor 选取当前节点的所有先辈(父、祖父等Q?
ancestor-or-self 选取当前节点的所有先辈(父、祖父等Q以及当前节Ҏw?
attribute 选取当前节点的所有属?
child 选取当前节点的所有子元素?
descendant 选取当前节点的所有后代元素(子、孙{)?
descendant-or-self 选取当前节点的所有后代元素(子、孙{)以及当前节点本n?
following 选取文档中当前节点的l束标签之后的所有节炏V?
namespace 选取当前节点的所有命名空间节?
parent 选取当前节点的父节点?
preceding 选取文中当前节点的开始标{之前的所有节炏V?
preceding-sibling 选取当前节点之前的所有同U节炏V?
self 选取当前节点?
步的语法Q?轴名U?:节点试[谓语]
<title>在HTML中调用XML数据</title>
</head>
<body bgcolor="#FFFFFF">
<b>标题: </b>
<span id="title"></span><br>
<b>作? </b>
<span id="author"></span><br>
</body>
</html>
问题Q?br />
1Q?/strong>
<?xml version="1.0" standalone="yes" encoding="GB2312"?>
<myfile>
<title>XMLL学习手册</title>
<author>ajie</author>
</myfile>
把myfile.htmlҎq样Ӟ到这句nodes = xmlDoc.documentElement.childNodes时报错,提示“~少对象”;
2Q?/strong>standalone="yes"换成standalone="no"一L错误
3Q?/strong>
<?xml version="1.0" encoding="GB2312"?>
<myfile>
<title>XMLL学习手册</title>
<author>ajie</author>
</myfile>
把myfile.htmlҎq样时可以运行正常;
对这个standalone很是无奈Q谁帮忙讲解下;
在十U技术中Q最重要的一U技术我惛_该非XML莫属。这里不仅仅指XML规范本nQ还包括一pd有关的基于XML的语aQ主要有XHTMLQXSLTQXSLQDTDsQXML Schema(XSD)QXPathQXQuery和SOAP.如果你现在还对XML一无所知,那么赶快狂补吧。XML是包含类gHTML标签的一个文本文Ӟ在这个文件中定义了一个树型结构来描述它所保存的数据?/p>
XML最大的优点是你既可以在q个文本文g中存储结构化数据Q也可以在其中存储非l构化数据——也是_它能包含和描q?_糙?文数据Q就象它描述"规则?表格数据一栗?/p>
XHTML是目前编写HTML的首选方?因ؓXHTML本n是格式良好的XMLQ与通常畸Ş的HTML文档相比Q?XHTML格式文更容易处理?/p>
XSLT和XSL是对XML文q行转换的语a。它们可以将XML文转换成各U格式,比如另一个文本文件、PDF文g、HTML文g、逗号分割的文Ӟ或者{换成其它的XML文?/p>
DTDs 和XML Schema用来描述XML文g所包含的数据内容的cdQ你不用编写定制的代码p对XML文的内容进?有效?查,使内容强行遵守给出的规则?/p>
XPath ?XQuery是查询语aQ用它们可以从XML文中吸取单个的数据Ҏ者数据项列表。XQuery的功能特别强大,因ؓ它对XPath查询q行了扩展。实际上QXQuery和XML的关pd像SQL之于关系数据库一栗?/p>
SOAP是Web services间进行通讯的标准协议。你不必知道SOAP协议的所有细节,但是你应该熟悉其常用规则及其工作原理Q这样你才能使用它?/p>
二、Web Services
Web服务是XML行后的直接产物。因为XML可以描述数据和对象,XML大纲可以保证XML文数据的有效性,因ؓXML的基于文本的规范Q因而XML文极其适合于作ZU跨q_通讯标准的基本格式。如果你q没有接触过Web服务Q那么过不了多久你肯定会到它,所以必ȝl掌握Web服务Q最好是_N它Q因为它是迄今ؓ止应用程序间跨不同种cL器、语a、^台和位置通讯的最单的一U方式。不你需不需要它QWeb服务都会是将来互用性的主要势?/p>
XML工作l的John Bosak曾说q:"XML使得Java有事可做"Q那么,我们也可以说QWeb服务使得所有语a都有事可做。Web服务让运行在大型Z的COBOL应用E序与运行在手持讑֤上的应用E序怺沟?让Java应用与。NET服务器相互通讯Q让桌面应用与Web服务器进行无~交互,不但为商业数据处理,同时也ؓ商业功能提供了方便的实现——ƈ且这U实C语言、^台、和位置无关?/p>
三、面向对象编E?/strong>
许多E序员仍然认为OOP乃技术的象牙之塔Q但是细l想一下过dq里在面向对象领域里占据q统d位的开发语a之后Q你׃会这么认ZQOOP理念从Smalltalk开始,然后蔓g到C++和Pascal(Delphi)Q到Java成ؓ真正的主,几年之后QVB.NET ?C#的出现可以说是OOP发展Cd造极的地步。虽然用这些语a不必了解OOP的概念,但如果你~Z一些OOP的基本知识和ҎQ我想你很难在逐渐疲Y的就业市Z扑ֈ工作?/p>
四、JavaQ?C++Q?C#Q?VB.NET
如果你热衷于技术,q且热爱~程Q那么我想你应该L玩{q些高语言Q我说的玩{q不一定要你成U编E高手。而是能看懂用q些语言~写的代码即可。如果你q有_֊用它们编码那更好了。其实这U机会甚。但是看代码的机会很多,学习~程的最有效的一U方式就是看源代码——浩如烟L源代码中很多都不是用你所钟爱的开发语a~写的?/p>
在过ȝ几年里,各个语言功能的发展基本上都差不多。现在你完全可以用VB.NET来写Windows服务、Web应用或者命令行E序。即使你只用其中的一U语a写程序。我认ؓ也完全有必要学习另外一U语aQ自己能阅d理解它们现有的例子代码,q且能将一U语a~写的代码{换成你首选的~程语言代码。这里列出的四种语言可谓是一个强大的开发语a工具,如果你掌握了它们Q毫无疑问你一定是一个众ZԒ慕的高手。这里我要声明一下:那就是我q没有要忽略和排除其它的高语言Q如QFORTRAN、COBOL、APL、ADA、Perl和Lisp{等Q根据你所从事的领域不同,应该选择适合的语a和工兗?/p>
五、JavaScript
Java 和JavaScript两者的名字管很类|但它们之间ƈ没有什么关pRؓ什么一U脚本语a会如此重要,以至于将它列入十U关键技术之一?仔细想一下就知道了,目前所有主的览器都使用JavaScript.如果你要~写Web应用E序Q那么JavaScript不可或缺。此外,JavaScriptq能作ؓ一U服务器端的脚本语言Q如它嵌入在ASP、ASP.NET中,或者嵌入XSLT来扩展功能。目前JavaScript在Mozilla/Netscape中是Ȁzd于XUL界面的首选语aQ它zZActionScriptQ成为Flash MX应用的编E语a。还有就是JavaScript极有可能成ؓ未来新设备的脚本语言以及L应用的宏语言?/p>
相比之下QVBScript虽然在微软的产品中得到很好的支持Q但从长q来看,没有q象表明它会有美好前途。微软自己都向于用JavaScript(或者用由JavaScriptz的JScript)来编写其客户端脚本代码。因此,如果你要选择脚本语言Q非JavaScript莫属?/p>
六、Regular Expressions
从所周知Q关pL据库的查询用SQLQ搜索XML文用XPath 和XQueryQ而正则表辑ּ则用来搜索纯文本。例如,你可以用一个命令来查找或删除HTML格式文g中的注释内容。大安用过"IndexOf"?InStr"以及"Like"q些内徏在JavaScript或VB中的文本搜烦函数Q这些函数虽然很Ҏ使用Q但是它们的功能却无法与正则表达式同日而语——现在每一U主的开发语a都提供对正则表达式的存取。尽有为正则表辑ּ本n的读写艰涩难懂,但毕竟它的功能强大,使用它的领域也越来越多?/p>
七、Design Patterns
像OOP通过创徏和分cd象来化编E一P设计模式普通的对象交互分类成指定的模型Q这是一个从一般到具体的过E。OOP的成分用得多Q设计模式就昑־有用武之地。所以你必须理解它们Q跟上其M理论的发展?/p>
八、Flash MX
当你需要比HTML和CSS所能提供的更多的客L囑Ş和编E能力时QFlash是最佳选择。在Flash中编E比用Java应用或者。NET代码来得快得多,也容易得多?/p>
在最新版本中(MX)QFlash不仅可以d和进行动L包,它还是个高度的可~程应用环境。具备强大的与SOAP Web服务沟通的能力Q可以调用运行在q端服务器上的ColdFusion、Java或。NET代码。可以说Flash几乎无处不在Q包括手持设备、置盒、甚x新的qx电脑Q你到处都可以见到它的n影,所以用它实际上可以扩展和延你的应用E序使用领域?/p>
九、Linux/Windows
q是当今PCs机操作系l的两大阵容Q如果你惛_计算业里P׃定要熟悉它们。对于LinuxQ最好能自己安装Q配|,下蝲它的囑Ş用户界面以及一些应用程序。自己安装Apacheq会~写Web应用E序。要清醒地认识到q个世界除了Windows之外Q还有Linux的存在。ƈ且这U局面将会长期存在。反q来Q如果你是一个死忠的Linux开发者,不要再l对Windows的憎Ӟ要相互学习,取长补短Q看看Windows有什么好的东东可以采U뀂记住Windows仍然是桌面之王?/p>
谁也说不准你们公总么时候会军_从Linux转向WindowsQ或者从Windows转向Linux.谁也说不准什么时候你会蟩槽跑到另外一个用不同^台的公司上班——或者即便不xQ也有可能在不同q_上开始另外一个杀手目——所以最好在每个q_上都U篏一些经验,而不要在一|上吊歅R?/p>
十、SQL
管SQL在当今众多的技术中已不是什么新东西Q而且在未来的十年里它的作用很有可能被削弱Q甚x个被淘汰Q但它仍然是一U基本技能——别看它是一U基本技能,至今仍有许多开发h员不懂什么是SQL或对它了解不多。不要指望基于图形用L面的SQL构造器会帮你的忙,q是自己亲手写SQL查询吧,定你掌握了SQL的基本语法。现在理解了SQLQ不仅对以后学习XQuery有所裨益Q而且可以使你很快扑ֈ化或改进当前开发项目的途径?/p>
֣Q培d技术的好奇?/strong>
其实Q不技术的发展势如何Q每个h最重要的一个技能是好奇心。敢于面Ҏ战,在你目前或未来的工作中,新语a或新技术可能很重要Q也可能不怎么重要Q你所学习的东西ƈ不一定非要针对你的工作。不要怕失败,M新的技术对初学者来说都是困隄。大多数的失败都可以归咎于本w急功q利Q希望速成。俗话说——千里之行,始于下Q应该脚t实圎ͼ一步一个脚印地往前走。不要让旉来左右你行动Q而是要利用时间来x、研I、测试新的开发技术和工具?/p>
“中国北京香蕉是个大笨?#8221;q是我定义的aka字符集;各字W对应代码点为:
?00000001
?00000010
?10000001
?10000010
?10000100
?10001000
?10010000
W?10100000
?11000000
?00000100
?00001000
下面是我定义?zixia ~码ҎQ?位)Q可以看到它的编码中表示了aka字符集的所有字W对应的 代码单元Q?br />
?10000001
?10000010
?00000001
?00000010
?00000100
?00001000
?00010000
W?00100000
?01000000
?10000100
?10001000
所谓文本文?是我们按一定编码方式将二进制数据表CZؓ对应的文本如00000001000000100000010000001000000100000010000001000000q样的文件。我用一个支持zixia~码和aka字符集的C本打开Q它按照编码方案显CZؓ "香蕉是个大笨?"
如果我把q些字符按照GBK另存一个文Ӟ那么则肯定不是这个,而是
1100111111100011 1011110110110110 1100101011000111 1011100011110110 1011010011110011 1011000110111111 1011010110110000 110100001010
二,字符?br />
1Q?常用字符集分c?
ASCII及其扩展字符?br />
作用Q表语英语及西欧语言?br />
位数QASCII是用7位表C的Q能表示128个字W;其扩展?位表C,表示256个字W?br />
范围QASCII?0?FQ扩展从00到FF?br />
ISO-8859-1字符?br />
作用Q扩展ASCIIQ表CƧ、希腊语{?br />
位数Q?位,
范围Q从00到FFQ兼容ASCII字符集?br />
GB2312字符?br />
作用Q国家简体中文字W集Q兼容ASCII?br />
位数Q?个字节表C,能表C?445个符P包括6763个汉字,几乎覆盖所有高频率汉字?br />
范围Q高字节从A1到F7, 低字节从A1到FE。将高字节和低字节分别加?XA0卛_得到~码?br />
BIG5字符?br />
作用Q统一J体字编码?br />
位数Q?个字节表C,表示13053个汉字?br />
范围Q高字节从A1到F9Q低字节?0?EQA1到FE?br />
GBK字符?br />
作用Q它是GB2312的扩展,加入对繁体字的支持,兼容GB2312?br />
位数Q?个字节表C,可表C?1886个字W?br />
范围Q高字节?1到FEQ低字节?0到FE?br />
GB18030字符?br />
作用Q它解决了中文、日文、朝鲜语{的~码Q兼容GBK?br />
位数Q它采用变字节表C?1 ASCIIQ?Q?字节)。可表示27484个文字?br />
范围Q?字节?0?F; 2字节高字节从81到FEQ低字节?0?E?0到FEQ?字节W一三字节从81到FEQ第二四字节?0?9?br />
UCS字符?br />
作用Q国际标?ISO 10646 定义了通用字符?(Universal Character Set)。它是与UNICODE同类的组l,UCS-2和UNICODE兼容?br />
位数Q它有UCS-2和UCS-4两种格式Q分别是2字节?字节?br />
范围Q目前,UCS-4只是在UCS-2前面加了0x0000?br />
UNICODE字符?br />
作用Qؓ世界650U语aq行l一~码Q兼容ISO-8859-1?br />
位数QUNICODE字符集有多个~码方式Q分别是UTF-8QUTF-16和UTF-32?br />
2 Q按所表示的文字分c?br />
语言 字符?nbsp; 正式名称
p、西Ƨ语 ASCIIQISO-8859-1 MBCS 多字?nbsp;
体中?nbsp; GB2312 MBCS 多字?nbsp;
J体中文 BIG5 MBCS 多字?nbsp;
J中?nbsp; GBK MBCS 多字?nbsp;
中文、日文及朝鲜?nbsp; GB18030 MBCS 多字?nbsp;
各国语言 UNICODEQUCS DBCS 宽字?
三,~码
UTF-8Q采用变长字?(1 ASCII, 2 希腊字母, 3 汉字, 4 q面W号) 表示Q网l传? 即错了一个字节,不媄响其他字节,而双字节只要一个错了,其他也错了,具体如下Q?br />
如果只有一个字节则其最高二q制位ؓ0Q如果是多字节,其第一个字节从最高位开始,q箋的二q制位gؓ1的个数决定了其编码的字节敎ͼ其余各字节均?0开头。UTF-8最多可用到6个字节?/p>
UTF-16Q采?字节QUnicode中不同部分的字符都同样基于现有的标准。这是ؓ了便于{换。从 0x0000?x007F是ASCII字符Q从0x0080?x00FF是ISO-8859-1对ASCII的扩展。希腊字母表使用?x0370?x03FF 的代码,斯拉夫语使用?x0400?x04FF的代码,国使用?x0530?x058F的代码,希伯来语使用?x0590?x05FF的代 码。中国、日本和韩国的象形文字(ȝ为CJKQ占用了?x3000?x9FFF的代码;׃0x00在c语言及操作系l文件名{中有特D意义,故很多情况下需要UTF-8~码保存文本Q去掉这?x00。D例如下:
UTF-16: 0x0080 = 0000 0000 1000 0000
UTF-8: 0xC280 = 1100 0010 1000 0000
UTF-32Q采?字节?br />
优缺?br />
UTF-8、UTF-16和UTF-32都可以表C有效编码空?(U+000000-U+10FFFF) 内的所有Unicode字符?br />
使用UTF-8~码时ASCII字符只占1个字节,存储效率比较高,适用于拉丁字W较多的场合以节省空间?br />
对于大多数非拉丁字符Q如中文和日文)来说QUTF-16所需存储I间最,每个字符只占2个字节?br />
Windows NT内核是UnicodeQUTF-16Q,采用UTF-16~码在调用系lAPI时无需转换Q处理速度也比较快?br />
采用UTF-16和UTF-32会有Big Endian和Little Endian之分Q而UTF-8则没有字节顺序问题,所以UTF-8适合传输和通信?br />
UTF-32采用4字节~码Q一斚w处理速度比较快,但另一斚w也浪费了大量I间Q媄响传输速度Q因而很用?br />
四,如何判断字符?br />
1Q字节序
首先说一下字节序对编码的影响Q字节序分ؓBig Endian字节序和Little Endian字节序。不同的处理器可能不一栗所以,传输旉要告诉处理器当时的编码字节序。对于前者而言Q高位字节存在低地址Q低字节存于高地址Q后者相反。例如,0X03AB,
Big Endian字节?br />
0000: 0 3
0001: AB
Little Endian字节序是
0000: AB
0001: 0 3
2Q编码识?br />
UNICODEQ根据前几个字节可以判断UNICODE字符集的各种~码Q叫做Byte Order MaskҎBOMQ?br />
UTF-8: EFBBBF (W合UTF-8格式Q请看上面。但没有含义在UCS即UNICODE?
UTF-16 Big EndianQFEFF (没有含义在UCS-2?
UTF-16 Little EndianQFFFE (没有含义在UCS-2?
UTF-32 Big EndianQ?000FEFF (没有含义在UCS-4?
UTF-32 Little EndianQFFFE0000 (没有含义在UCS-4?
GB2312Q高字节和低字节的第1位都??br />
BIG5QGBK&GB18030Q高字节的第1位ؓ1。操作系l有默认的编码,ؓGBKQ可以下载别的ƈ升。通过判断高字节的W?位从而知道是ASCII或者汉字编码?/p>