xml学习笔记

XML学习笔记

一.XML的作用

1.  Xml是一种可扩展标记语言用来传输和存储数据,而不是用来显示数据。

2 使用xml将数据从html中分离出来形成一种数据传输的对象。

3 Xml简化了数据共享,在真实世界中计算机系统和数据使用不兼容的格式来输出数据。Xml数据以纯文本格式进行存储,因此提供了一种独立于软件和硬件的数据存储方式。

4 Xml数据以文本格式存储,这使得xml在不损失数据的情况下,更容易和扩展新的操作系统、新的应用程序或新的浏览器。

5 使用xml创建的internet语言

         XHTML – 最新的HTML版本。

         WSDL – 用于描述可用的Web service

         WAPWML – 用于手持设备的标记语言。

         RSS – 用于RSS feed的语言。

         RDFOWL – 用于描述资源和本体。

         SMIL – 用于描述针对Web的多媒体。

.xml语法规则

1.所有xml元素都必须有关闭标签。

2.Xml标签对大小写敏感。

3.xml必须要正确的嵌套。

4.xml必须要有根元素。

5.xml的属性值须加引号。

6.实体引用:xml文档中有5类实体引用,&It; 小于号(<,&gt; 大于号(>,&amp; 和号(&,&apos; 单引号(,&quot; (“)

7.xml中的注释 <!-- -->HTML很相似。

8Xml中空格会被保留。多个空格会被当成一个使用。

9 XMLLF来存储换行。

10.XML的命名规则:避免使用“-”字符。避免使用“.”。避免“ :”字符。

11XML的优势之一,就是可以经常在不中断应用程序的情况下进行扩展。

.xml属性

1.属性必须加引号,如果属性本身值就带有引号,那么有必要使用单引号包围它,或者只用转义字符去做。

2.XML中如果是用作记录数据的话那么应该尽量避免使用属性,但是如果需要记录数据的状态的话那么需要使用属性。用一句很经典的话来形容:元数据(有关数据的数据)应当存储为属性,而数据本身应当存储为元素。

.XML解析器

         大多数浏览器都有读取和操作xml的内建XML解析器。解析器吧XML转换为JavaScript可访问的对象。那就是说我们的一些配置信息可以使用XML来进行处理并且让javaScript来做出相应。虽然各个浏览器的XML解析器各不相同,但是他们都包含有以下几个解析XML必备的方法,遍历XML树、访问插入及删除节点(元素)及其属性的函数。

IE中将一个XML文档使用javaScript来把文档加载入解析器中。

var xmlDoc = new ActiveXObject(“Microsoft.XMLDOM”);//创建一个XML对象

xmlDoc.async=”false”;//关闭异步加载,确保在文档加载完毕前解析器不会继续脚本的执行。

xmlDoc.load(“note.xml”);//加载XML文件。

xmlDoc.LoadXML(txt);//用于加载字符串文本。

Firefox及其他浏览器中的XML解析器。

var parser = new DOMParser();

var doc = parser.parseFromString(txt,”text/xml”);

现代浏览器都不允许跨域访问,这意味着,网页以及它试图加载的xml文件,都必须位于相同的服务器上。

.xml样式表语言

1.使用CSS可以去为XML创建样式。如果要为XML添加一个css样式那么<?xml-stylesheet type=”text/css” href=”cd_catalog.css”?>

2.如果要给xml文档加样式那么首选XSLT(extensible Stylesheet Language Transformations),远比CSS更加完善。如果要为一个XML添加一个XSLT那么需要使用如下的代码<?xml-stylesheet type=”text/xsl” href=”simple.xsl”?>

 

XML DOM

   DOMDocument Object Model ,文档对象模型)定义访问和操作文档的一套标准方法。

 

解析 XML 文件 - 跨浏览器实例

下列代码把一个 XML 文档 ("note.xml") 载入 XML 解析器中:

<html>

<head>

<script type="text/javascript">

function parseXML()

{

try //Internet Explorer

  {

  xmlDoc=new ActiveXObject("Microsoft.XMLDOM");

  }

catch(e)

  {

  try //Firefox, Mozilla, Opera, etc.

    {

    xmlDoc=document.implementation.createDocument("","",null);

    }

  catch(e)

    {

    alert(e.message);

    return;

    }

  }

xmlDoc.async=false;

xmlDoc.load("note.xml");

 

document.getElementById("to").innerHTML=

xmlDoc.getElementsByTagName("to")[0].childNodes[0].nodeValue;

document.getElementById("from").innerHTML=

xmlDoc.getElementsByTagName("from")[0].childNodes[0].nodeValue;

document.getElementById("message").innerHTML=

xmlDoc.getElementsByTagName("body")[0].childNodes[0].nodeValue;

}

</script>

</head>

 

<body οnlοad="parseXML()">

<h1>W3School.com.cn Internal Note</h1>

<p><b>To:</b> <span id="to"></span><br />

<b>From:</b> <span id="from"></span><br />

<b>Message:</b> <span id="message"></span>

</p>

</body>

</html>

输出:

W3School.com.cn Internal Note

 

To: George

From: John

Message: Don't forget the meeting!

TIY

重要注释

如需从 XML 中提取文本 "John",语法是:

getElementsByTagName("from")[0].childNodes[0].nodeValue

在这个 XML 例子中,只有一个 <from> 标签中,但是仍然需要规定数组的下标 [0],这是因为 XML 解析器方法 getElementsByTagName() 返回所有 <from> 节点的一个数组。

解析 XML 字符串 - 跨浏览器实例

下面的代码加载并解析一个 XML 字符串:

<html>

<head>

<script type="text/javascript">

function parseXML()

{

text="<note>";

text=text+"<to>George</to>";

text=text+"<from>John</from>";

text=text+"<heading>Reminder</heading>";

text=text+"<body>Don't forget the meeting!</body>";

text=text+"</note>";

try //Internet Explorer

  {

  xmlDoc=new ActiveXObject("Microsoft.XMLDOM");

  xmlDoc.async="false";

  xmlDoc.loadXML(text);

  } 

catch(e)

  {

  try // Firefox, Mozilla, Opera, etc.

    {

    parser=new DOMParser();

    xmlDoc=parser.parseFromString(text,"text/xml");

    }

  catch(e)

    {

    alert(e.message);

    return;

    }

  }

document.getElementById("to").innerHTML=

xmlDoc.getElementsByTagName("to")[0].childNodes[0].nodeValue;

document.getElementById("from").innerHTML=

xmlDoc.getElementsByTagName("from")[0].childNodes[0].nodeValue;

document.getElementById("message").innerHTML=

xmlDoc.getElementsByTagName("body")[0].childNodes[0].nodeValue;

}

</script>

</head>

 

<body οnlοad="parseXML()">

<h1>W3School.com.cn Internal Note</h1>

<p><b>To:</b> <span id="to"></span><br />

<b>From:</b> <span id="from"></span><br />

<b>Message:</b> <span id="message"></span>

</p>

</body>

</html>

输出:

W3School.com.cn Internal Note

 

To: George

From: John

Message: Don't forget the meeting!

最后练习:

1.       将一个xml文档使用javaScript加载到内存当中并且使用HTML去进行显示,要适用于IE和火狐等浏览器。

2.       将一个文本xml文档使用javaScript加载到内存中并且使用HTML去进行显示,要适用于IE火狐等浏览器。

3.       CD机的XML文档变成HTML文档。

.XMLHttpRequest

1.作用:这个对象是所有开发人员的梦想他可以1.在不刷新页面的情况下更新数据2.页面已经加载后从服务器请求数据。3. 页面已经加载后从服务器接收数据。4.在后台向服务器发送数据。

2.使用在所有现代的浏览器中(包含IE7)都使用这种方法去创建一个XMLRequest对象

xml = new XMLHttpRequest();IE 56中:

xmlhttp = new ActiveXObject(“Microsoft.XMLHTTP”);

根据不同的浏览器做出一个综合的判断去确定是那个浏览器。

<script type=”text/javascript”>

         var xmlhttp;

function loadXMLDoc(url){

         xmlhttp=null;

         if(window.XMLHTTPRequest){

                   xmlhttp = new XMLHTTPRequest();

}else if(window.ActiveXObject){

         xmlhttp = new ActiveXObject(“Microsoft.XMLHTTP”);

}

if(xmlhttp!=null){

         xmlhttp.onreadystatechange=state_Change;

         xmlhttp.open(“GET”,url,true);

         xmlhttp.send(null);

}else{

         alert(“浏览器不支持XMLHTTPRequest对象”);

}

}

function state_Change(){

         if(xmlhttp.readystate==4){

         if(xmlhttp.status=200){

}

}

}

</script>

.xml的命名空间

使用命名空间的作用是防止命名冲突。

概念:统一资源提示符(Uniform Resource Identifier(URI)

统一资源提示符是一串可以标示因特网资源的字符。最常用的URI是用来标示因特网域名地址的统一资源定位器(URL)。另一个不那么常用的URI是统一资源命名(URN)。

命名空间的语法: 

 

xmlns:namespace-prefix=”namespaceURI”.

例如:<f:table xmlns:f=” http://www.w3school.com.cn/furniture”>

如果你为某个元素制定了默认的命名空间那么将省去在所有命名空间中使用前缀的麻烦,例如:

<table xmlns="http://www.w3.org/TR/html4/">

   <tr>

   <td>Apples</td>

   <td>Bananas</td>

   </tr>

</table>

九:xml CDATA:所有xml文档中的文本均会被解析器解析。

CDATA的语法

<script>

         <![CDATA[

         内部是代码

]]>

</script>

注:CDATA不能嵌套

.xml的命名空间

载入XML可能会引发2种错误,

1 在文本内容中发现非法字符

如果 XML 文档中的某个字符与编码属性不匹配,您就会得到这个错误消息。通常,当 XML 文件中含有外国字符,且当文件使用类似记事本的单字节编码编辑器保存,以及没有指定编码属性时,您就会得到这个错误消息。

2 将当前编码切换为不被支持的指定编码

如果您的文件被保存为 Unicode/UTF-16,但是编码属性被指定为单字节编码(比如 Windows-1252ISO-8859-1 或者 UTF-8)时,那么您就会得到这个错误消息。或者当您的文档被保存为单字节编码,但编码属性被指定为双字节编码(比如 UTF-16)时,也会得到这个错误消息。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
JavaEE学习笔记是我自己在学习过程中总结的javaweb各项技术和知识点。它包含了JavaEE的十三种核心技术,分别是JDBC、JNDI、EJB、RMI、Servlet、JSP、XML、JMS、Java IDL、JTS、JTA、JavaMail和JAF。 JavaEE是一个开放的标准的组件体系结构,它独立于平台,但使用Java语言。一个JavaBean是一个满足JavaBeans规范的Java类,通常定义了一个现实世界的事物或概念。一个JavaBean的主要特征包括属性、方法和事件。 在支持JavaBeans规范的开发环境中,可以可视地操作JavaBean,也可以使用JavaBean构造出新的JavaBean。JavaBean的优势还在于Java带来的可移植性。所以在JavaEE学习笔记中,你可以找到关于这些核心技术和JavaBean的详细内容和示例。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [javaEE学习笔记](https://download.csdn.net/download/sugar_map/10268742)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [JavaEE学习笔记整理](https://blog.csdn.net/qq_51861704/article/details/124133294)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值