青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

隨筆 - 224  文章 - 41  trackbacks - 0
<2008年11月>
2627282930311
2345678
9101112131415
16171819202122
23242526272829
30123456

享受編程

常用鏈接

留言簿(11)

隨筆分類(159)

隨筆檔案(224)

文章分類(2)

文章檔案(4)

經典c++博客

搜索

  •  

最新評論

閱讀排行榜

評論排行榜

XML介紹

表面上, XML看起來像HTML. 兩者都從標準通用標記語言(SGML)起源。產生HTML的工具能常常被再用來產生XML。XML在兩個重要區域中是和HTML不同: 句法和語義.

  • XML句法

HTML和XML使用 <, >, 和 & 創造要素和屬性結構. 在HTML瀏覽器接受或者忽視混合標記語言時,XML語法分析器建立在這些分析器上的應用程序比較嚴格。在XML句法中的錯誤停止文件處理, 用戶或者應用得到錯誤啟示, 而不是對文檔結構進行猜測。

XML文件必須遵守標記文件部分和創造嵌入要素結構的規定. 在XML文件中要素不能重疊. 如果要素的起始標簽是在另一要素以內,它必須去同一包含要素中中止。例如, 下列的HTML代碼表示了黑體和斜體字的混合結構。

<b>This is bold text. <i>This is bold italic text.</b> This is italic text.</i>

在一些HTML瀏覽器中它會正常顯示。在一位XML從語法上分析上,就行不通了。為了取得在XML中同樣的格式, 可以使用下列的句法.

<b>This is bold text.</b> <i><b>This is bold italic text.</b> This is italic text.</i>

這為XML文件創建者的額外工作提高了互操作性。XML同樣對句法的其它方面要求嚴格.所有的屬性值一定是加以引用的,你不能在你文件的文本內使用<,>或者&,而要用&lt;, &gt;或&amp;代替。

  • XML語義

雖然XML關于句法是嚴格的, 它為開始者在XML文件中明確定義提供更多選項.<b>總是對HTML處理器有同樣的意義.用XML, 你能建立你的自己標記詞匯或者在各種各樣的適合于你的工業或者項目類型提價標記詞中挑選一個.圖表和文件類型定義(DTDs)讓你描繪這些詞匯, 但是你能也建立文件沒有正式規定使用的詞匯. 使用Namespaces幫助你分辨認出使用的詞匯。

這個方法要求適應各種不同瀏覽器要求的結構。開發者不能指望XML應用懂得他們的標記意味著什么,并理解這些標記。 瀏覽器能使目前XML表示出來, 但是要求style sheet以CSS或XSLXSL Transformations(XSLT)來規范用戶的說明。一些瀏覽器,包含IE5.0+, 包含默認的style sheet,但它主要用于診斷而不是用于最終用戶設計。

XML應用也能使他們的自己邏輯進入XML詞匯,而不單純依賴style sheets。這邏輯可以采取簡單腳本的形式或綁定到特殊的表示模型,或者它可以涉及編寫整個應用程序。這些應用利用內建的包含在XML文件的標簽結構來處理在那些文件中信息, 傳遞給用戶, 把他們與其它數據來源連接起來,或者重定向它們到其它適合用戶。

  • XML格式的優勢

在某一方面,XML是僅僅另一數據格式,在其它方面,XML比其它格式有幾個重要優勢,它可以更有效地存儲信息。

XML允許開發者建立他們的屬于自己的保存信息的標記結構.

XML解析語法是非常明確,而且是一種廣泛應用的工具, 它能從在各種各樣的環境中XML文件使獲得知識.在Unicode基礎的基礎上建立XML使它更容易建立使國際化文件.

應用能依賴XML分析器確定結構的可靠性,以及進行數據類型檢查

XML格式置于文本使他們變得更有閱讀,更容易用文件保證其有效性,更容易糾正錯誤。

XML文件能夠利用大部建立在瀏覽器中的資源。

XML是并非適合于每一個環境,XML文件比他們取代的二進制格式的更哆嗦.他們需要更多網絡帶寬和存儲空間,需要更多的處理器時間,但是, 優秀應用程序設計能避免某些問題.

建立一簡單XML文件

為了證明怎樣XML結構能被使用來描述信息, 我們將建立一非常基本XML文件,它含有一包含下列域的雇員創記錄

.

Name

Home Address

Job Title

Salary

這個是雇員記錄.

Shane S. Kim

1234 South Street

Anywhere, NY 10001

USA

Vice President of Finance

$175,000

定義基本元素

為了開始我們的XML,我們需要一文件或者根元素, 在這個情況下, <employeeRecord>, 保有全部我們文件的內容.下面,我們將用一<name>要素表達雇員名字; <homeAddress>表示地址;<jobTitle element>表示職稱;工資則用<salary>。

<employeeRecord>

<name>Shane S. Kim</name>

<homeAddress>1234 South Street

Anywhere, NY 10001

USA</homeAddress>

<jobTitle>Vice President of Finance</jobTitle>

<salary>$175,000</salary>

</employeeRecord>

指出元素的開始用開始標志, 象<employeeRecord>,在元素的結束是用結束標志,象</employeeRecord>。所有的元素正確嵌入。符合我們上面所說的標準。

重新定義要素

<name>和<homeAddress>要素包括有利于利用的信息,例如,可以對雇員的名字進行排序。我們將添加一些孩子元素<givenName>,<middleName>和<familyName>到名字要素.

<name><givenName>Shane</givenName> <middleName>S.</middleName> <lastName>Kim</lastName></name>

我們將也給我們家庭地址要素添加更多細節.

<homeAddress><street>1234 South Street</street>

<city>Anywhere</city>, <stateProvince>NY</stateProvince> <postalCode>10001</postalCode>

<country>USA</country></homeAddress>

現在文件如下:

<employeeRecord>

<name><givenName>Shane</givenName> <middleName>S.</middleName> <lastName>Kim</lastName></name>

<homeAddress><street>1234 South Street</street>

<city>Anywhere</city>, <stateProvince>NY</stateProvince> <postalCode>10001</postalCode>

<country>USA</country></homeAddress>

<jobTitle>Vice President of Finance</jobTitle>

<salary>$175,000</salary>

</employeeRecord>

在這版本中,要素結構辨認出全部的文件內容. 如果我們認為不應該包括某內容或結構,我們可以使用一個屬性。例如如果這個公司以超過一各的貨幣支付薪水,那就必須指定貨幣的種類。文檔將變成下面的樣子:

<salary currency="USD">$175,000</salary>

以相似方式一個有關<employeeRecord>要素的employeeID屬性可以使程序變得更容易操縱雇員記錄, 特別當我們必須聯合多個XML文件時.

<employeeRecord employeeID="2344-12Z">

現在完整文件如下:

<employeeRecord employeeID="2344-12Z">

<name><givenName>Shane</givenName> <middleName>S.</middleName> <lastName>Kim</lastName></name>

<homeAddress><street>1234 South Street</street>

<city>Anywhere</city>, <stateProvince>NY</stateProvince> <postalCode>10001</postalCode>

<country>USA</country></homeAddress>

<jobTitle>Vice President of Finance</jobTitle>

<salary currency="USD">$175,000</salary>

</employeeRecord>

  • 在IE上展示文件

Microsoft Internet Explorer提供一缺省的對XML文件的瀏覽器,可以展示他們的結構, 以及支持使用CSS或ESL表示的XML格式文本。如果一XML文件包含一xml stylesheet處理指令, Internet Explorer使用指定相應的形式顯示信息.如果沒有xml stylesheet處理指令,Internet Explorer應用它的缺省的style sheet.

默認的style sheet是對于許多通用程序很有用.裝載一文件到Internet Explorer 使微軟XML Parser(MSXML)解析文件的語法和檢查它的結構是否合法。如果解析語法失敗, Internet Explorer報告錯誤信息. 如果解析語法取得成功, Internet Explorer給出是一輪廓文件結構, 以小的+和-圖標來顯示其中的內容。如果文檔某一部分長度比較長,這種顯示能幫助你迅速瀏覽信息.

  • XML文件的各個部分

 

  • 元素

元素是組成XML的最基本的單位,它由開始標記,屬性和結束標記組成。下面就是一個屬性的開始標記:

<elementName att1Name="att1Value" att2Name="att2Value"...>

就是一個元素的例子,每個元素必須有一個元素名,元素可以若干個屬性以及屬性值。如果元素沒有屬性,則開始標記為<elementName>。而結束標記為</elementName>。下面就是一個人的元素,其中包括了此人的姓名:

givenName>Peter</givenName> <familyName>Kress</familyName></person>

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Xml;

namespace XMLTest
{
    
public partial class XMLTest : Form
    
{
        
private XmlDocument xmlDoc = null ;
        
private string strXMLPath = "Books.xml";

        
public XMLTest()
        
{
            InitializeComponent();
            InitXML();
        }


        
private void InitXML()
        
{
            
if(xmlDoc == null)
                xmlDoc 
= new XmlDocument();

            
if (!System.IO.File.Exists(strXMLPath))
            
{
                XmlDeclaration dec 
= xmlDoc.CreateXmlDeclaration("1.0""GB2312"null);
                xmlDoc.AppendChild(dec);

                XmlElement root 
= xmlDoc.CreateElement("Books");
                xmlDoc.AppendChild(root);

                xmlDoc.Save(strXMLPath);
            }

        }

        
private void btnCreate_Click(object sender, EventArgs e)
        
{
            xmlDoc.Load(strXMLPath);

            XmlNode root 
= xmlDoc.SelectSingleNode("Books");

            XmlElement book 
= xmlDoc.CreateElement("Book");

            XmlElement title 
= xmlDoc.CreateElement("Title");
            title.InnerText 
= "XML";
            book.AppendChild(title);

            XmlElement isbn 
= xmlDoc.CreateElement("ISBN");
            isbn.InnerText 
= "3333333";
            book.AppendChild(isbn);

            XmlElement author 
= xmlDoc.CreateElement("Author");
            author.InnerText 
= "snow";
            book.AppendChild(author);

            XmlElement price 
= xmlDoc.CreateElement("Price");
            price.InnerText 
= "120";
            price.SetAttribute(
"Unite""Fckpd");
            price.SetAttribute(
"name""sf");

            book.AppendChild(price);

            root.AppendChild(book);
            xmlDoc.Save(strXMLPath);
        }


        
private void btnUpdate_Click(object sender, EventArgs e)
        
{
            xmlDoc.Load(strXMLPath);

            XmlNodeList nodeList 
= xmlDoc.SelectSingleNode("Books//Book").ChildNodes;

            
foreach (XmlNode xn in nodeList)
            
{
                XmlElement xe 
= (XmlElement)xn;
                
if (xe.Name == "Author")
                
{
                    xe.InnerText 
= "amandag";
                }


                
if (xe.GetAttribute("Unit"== "Fckpd")
                
{
                    xe.SetAttribute(
"Unit""!");
                }

            }


            xmlDoc.Save(strXMLPath);
        }


        
private void btnDelete_Click(object sender, EventArgs e)
        
{
            xmlDoc.Load(strXMLPath);

            XmlNodeList nodeList 
= xmlDoc.SelectSingleNode("Books//Book").ChildNodes;

            
foreach(XmlNode xn in nodeList)
            
{
                XmlElement xe 
= (XmlElement)xn;
                
if(xe.Name == "Author")
                
{
                    xe.RemoveAll();
                }

                
if (xe.GetAttribute("Unit"== "!")
                
{
                    xe.RemoveAttribute(
"Unit");
                }

            }


            xmlDoc.Save(strXMLPath);
        }


        
private void btnReader_Click(object sender, EventArgs e)
        
{
            xmlDoc.Load(strXMLPath);

            XmlNodeReader reader 
= new XmlNodeReader(xmlDoc);
            
while (reader.Read())
            
{
                
if (reader.NodeType == XmlNodeType.Element)
                
{
                    
if (reader.Name.Equals("Price"))
                    
{
                        
if(reader.HasAttributes)
                        
{
                            
string unit = reader.GetAttribute("Unit");
                        }

                    }

                    
if (reader.Name.Equals("Author"))
                    
{
                        
string author = reader.ReadString();
                    }

                }

            }

        }



    }

}

代碼中的xml
<?xml version="1.0" encoding="GB2312"?>
<Books>
  
<Book>
    
<Title>XML</Title>
    
<ISBN>3333333</ISBN>
    
<Author>snow</Author>
    
<Price Unite="Fckpd" name="sf">120</Price>
  
</Book>
</Books>
posted on 2010-08-26 11:32 漂漂 閱讀(2140) 評論(0)  編輯 收藏 引用 所屬分類: c#開發
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            午夜久久资源| 一区二区精品| 亚洲欧美日韩高清| 午夜精品视频在线| 精品不卡视频| 亚洲精品久久久蜜桃| 欧美视频免费| 老司机精品视频一区二区三区| 欧美成人精品影院| 欧美一区二区三区在线免费观看| 欧美中文在线观看国产| 性欧美激情精品| 亚洲精品一区二区三区婷婷月 | 美女日韩欧美| 亚洲欧美一区二区三区极速播放| 欧美综合77777色婷婷| 日韩视频一区| 亚洲欧美国产精品va在线观看| 久久久久久久成人| 国产精品久久久久毛片大屁完整版 | 欧美第一黄网免费网站| 久久理论片午夜琪琪电影网| 国产欧美综合在线| 久久人人爽国产| 亚洲一区二区三| 亚洲深夜福利视频| 欧美成人网在线| 亚洲福利视频一区二区| 欧美人与禽猛交乱配视频| 亚洲精品美女久久7777777| 在线一区观看| 欧美在线999| 国产精品你懂得| 久久亚洲春色中文字幕| 国产精品mm| 亚洲黑丝一区二区| 亚洲第一二三四五区| 性欧美xxxx大乳国产app| 一本久久综合亚洲鲁鲁| 欧美成年人视频网站| 免费成人黄色av| av成人免费观看| 99av国产精品欲麻豆| 免费高清在线视频一区·| 久久嫩草精品久久久精品| 国产欧美精品va在线观看| 亚洲一区二区三区三| 亚洲天堂av在线免费| 欧美伦理a级免费电影| 亚洲国产精品t66y| 亚洲精品久久嫩草网站秘色| 欧美不卡视频| 91久久精品一区二区三区| 亚洲日本中文字幕区| 欧美成人激情在线| 欧美激情精品久久久久| 亚洲精品日韩综合观看成人91| 欧美成人激情视频| 亚洲毛片一区二区| 亚洲一级黄色| 国产精品亚洲激情| 欧美综合国产精品久久丁香| 美日韩精品视频| 亚洲人体1000| 欧美日韩一区在线观看视频| 亚洲天堂黄色| 欧美在线观看天堂一区二区三区| 亚洲深夜激情| 美日韩精品视频免费看| 欧美电影电视剧在线观看| 亚洲精品国产精品国自产在线| 欧美激情亚洲视频| 亚洲视频在线观看| 久久综合九色欧美综合狠狠| 亚洲精品日韩综合观看成人91| 欧美日本中文| 亚洲女同在线| 欧美成人tv| 亚洲一区二区不卡免费| 国产人成精品一区二区三| 久久久午夜精品| 亚洲美女黄色| 欧美在线亚洲综合一区| 亚洲欧洲精品一区二区三区| 国产精品v欧美精品∨日韩| 欧美在线视频一区| 亚洲人成网站在线播| 欧美一级专区| 亚洲日本成人网| 国产美女精品免费电影| 久久综合中文色婷婷| 一区二区欧美亚洲| 榴莲视频成人在线观看| 中文有码久久| 亚洲国产精品成人一区二区| 国产精品www色诱视频| 久久婷婷影院| 亚洲欧美偷拍卡通变态| 亚洲国产天堂久久综合网| 欧美一区二区三区男人的天堂| 亚洲人成在线观看一区二区| 国产精品腿扒开做爽爽爽挤奶网站| 美日韩精品视频免费看| 午夜在线播放视频欧美| 国产一区二区三区无遮挡| 欧美国产在线视频| 久久久久国产成人精品亚洲午夜| 99热免费精品在线观看| 欧美成人午夜视频| 欧美一区二区三区四区在线观看地址 | 欧美午夜精品久久久久久超碰| 久久精品视频在线看| 中文一区二区在线观看| 亚洲国产精品一区二区第一页 | 国产精品一区二区久久久久| 欧美91大片| 欧美在线视频全部完| 亚洲午夜精品久久| 美国十次成人| 久久久久久久网站| 欧美在线视频播放| 午夜在线观看欧美| 在线亚洲一区| 在线亚洲观看| 亚洲图片激情小说| 在线视频日韩精品| 99精品99| 99精品久久| 日韩午夜精品视频| 亚洲美女电影在线| 亚洲精品久久久久久久久久久久| 精品成人一区| 怡红院精品视频在线观看极品| 国产一区二区三区在线观看免费视频 | 欧美午夜一区二区福利视频| 午夜精彩视频在线观看不卡| 午夜免费日韩视频| 99精品国产在热久久婷婷| 久久国产视频网| 亚洲中午字幕| 久久伊人精品天天| 国产精品久久久久久久久久久久久| 亚洲欧美日韩国产中文| 欧美福利在线观看| 午夜精品久久一牛影视| 亚洲欧美日韩人成在线播放| 亚洲图片欧美日产| 亚洲大片免费看| 在线电影一区| 久久久国产成人精品| 欧美专区日韩专区| 国产精品白丝av嫩草影院 | 亚洲一级免费视频| 久色成人在线| 免费在线视频一区| 在线观看视频一区二区| 欧美在线亚洲在线| 午夜精品影院在线观看| 国产精品日韩精品欧美在线| 99在线精品视频| 欧美有码在线观看视频| 国产欧美日韩综合| 香蕉久久国产| 亚洲麻豆av| 久久中文字幕一区| 亚洲国产精品悠悠久久琪琪| 欧美成人午夜激情视频| 亚洲高清视频在线| 牛牛影视久久网| 欧美成人激情在线| 亚洲毛片在线| 国产精品一级久久久| 欧美一区午夜精品| 欧美高清成人| 伊人久久亚洲热| 亚洲大胆av| 午夜精品一区二区三区电影天堂 | 国产在线日韩| 亚洲人妖在线| 亚洲性xxxx| 日韩视频亚洲视频| 国产精品理论片在线观看| 国产午夜精品久久久久久久| 亚洲国产一区二区精品专区| 亚洲一区www| 欧美国产精品va在线观看| 国产精品99久久久久久久女警| 久久免费国产精品1| 国产精品爱久久久久久久| 亚洲国产成人不卡| 亚洲欧美第一页| 亚洲福利在线视频| 亚洲欧美一区二区三区久久| 欧美成人午夜77777| 激情亚洲一区二区三区四区| 亚洲欧美一区二区原创| 最新成人av网站| 久久久久久国产精品mv| 国产精品网站一区| 亚洲天堂av综合网|