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

隨筆 - 224  文章 - 41  trackbacks - 0
<2010年7月>
27282930123
45678910
11121314151617
18192021222324
25262728293031
1234567

享受編程

常用鏈接

留言簿(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>
            久久久99精品免费观看不卡| 亚洲视频在线观看免费| 久久国内精品视频| 亚洲免费观看| 99综合精品| 日韩视频在线一区| 久久久久91| 一区二区亚洲精品国产| 欧美性视频网站| 一区二区三区欧美激情| 欧美自拍偷拍午夜视频| 欧美亚洲动漫精品| 亚洲经典三级| 国产精品一区2区| 99精品免费| 久久成人免费| 国产一区二区三区四区三区四| 一本久道久久综合婷婷鲸鱼| 亚洲欧美成人综合| 国产亚洲精品自拍| 久久国产66| 欧美高清视频一区| 亚洲精品乱码久久久久久| 亚洲精品免费一二三区| 亚洲日本视频| 亚洲女同同性videoxma| 午夜精彩视频在线观看不卡| 久久av免费一区| 欧美韩日一区| 亚洲第一中文字幕| 在线中文字幕日韩| 国产一区二区三区免费不卡| 欧美激情精品久久久久久大尺度| 99riav国产精品| 欧美激情网友自拍| 亚洲欧洲在线播放| 欧美一区二区三区免费在线看| 午夜精品www| 国产精品久久久久国产精品日日| 亚洲最新在线视频| 久久影音先锋| 最新国产成人在线观看| 欧美成人一品| 女仆av观看一区| 久久爱www久久做| 国产日韩欧美不卡| 欧美激情1区2区3区| 久久天堂国产精品| 亚洲精品影视在线观看| 欧美亚洲系列| 亚洲欧美日韩在线高清直播| 亚洲激情国产| 亚洲精品韩国| 亚洲视频你懂的| 亚洲美女91| 欧美人妖在线观看| 久久久夜精品| 欧美三级精品| 亚洲已满18点击进入久久| 久久蜜桃香蕉精品一区二区三区| 久久福利视频导航| 精品动漫3d一区二区三区免费 | 亚洲久色影视| 欧美成年人网站| 欧美视频在线一区| 亚洲电影自拍| 99热在线精品观看| 欧美午夜一区二区| 亚洲免费人成在线视频观看| 午夜天堂精品久久久久| 国产视频久久久久久久| 久久色在线播放| 亚洲欧洲在线一区| 欧美尤物巨大精品爽| 尤物yw午夜国产精品视频明星| 久久久久久网站| 亚洲第一天堂av| 欧美一区二区免费视频| 亚洲国产精品欧美一二99| 欧美日韩高清在线| 久久精品一区中文字幕| 亚洲第一页在线| 欧美在线一区二区三区| 亚洲黄色精品| 久久精品一区二区| 亚洲欧美日韩专区| 在线免费观看日本欧美| 国产美女一区| 国产精品伊人日日| 欧美日韩一区二区视频在线观看| 久久精品一区二区三区不卡| 亚洲在线观看免费| 一区二区三区免费观看| 日韩性生活视频| 91久久国产综合久久91精品网站| 欧美午夜视频一区二区| 亚洲在线1234| 亚洲韩日在线| 久久亚洲国产精品一区二区| 亚洲电影av在线| 欧美日韩国产美| 久久综合给合| 亚洲一区二区三区视频| 亚洲国产精品va在线观看黑人| 亚洲小说欧美另类社区| 激情综合网激情| 国产欧美日韩亚洲精品| 欧美日韩美女| 久久精品国产一区二区三| 亚洲免费av观看| 亚洲电影在线| 夜夜狂射影院欧美极品| 国产亚洲激情| 欧美午夜在线观看| 欧美性猛交xxxx免费看久久久| 欧美日韩aaaaa| 欧美日韩在线精品| 国产精品福利网| 国内一区二区三区| 国产视频一区二区在线观看| 国产精品久久中文| 亚洲精品三级| av成人国产| 久久九九热re6这里有精品| 久久国产精品久久久久久久久久| 亚洲一区二区三区色| 欧美在线中文字幕| 欧美成人高清| 欧美日韩一区二区三区四区在线观看 | 亚洲精品乱码久久久久久黑人| 欧美国产日韩一区| 一区二区高清视频在线观看| 欧美一区二区三区四区在线观看地址 | 影音先锋成人资源站| 韩国欧美国产1区| 99精品热视频| 久久夜色精品亚洲噜噜国产mv| 欧美成人在线免费观看| 亚洲一级免费视频| 男男成人高潮片免费网站| 欧美性视频网站| 亚洲人成网站在线播| 久久爱www.| 亚洲国产第一页| 免播放器亚洲一区| av72成人在线| 欧美激情va永久在线播放| 亚洲国产天堂久久综合网| 最新精品在线| 欧美激情中文字幕一区二区| 国产日韩av一区二区| 亚洲综合三区| 99热精品在线| 欧美日韩伦理在线免费| 亚洲欧洲精品成人久久奇米网| 欧美在线观看网站| 欧美一级久久久| 亚洲理论电影网| 久久久亚洲国产天美传媒修理工| 国产精品久久久久一区二区三区| 亚洲欧美日韩一区二区在线| 日韩一级片网址| 国产伦精品一区二区三区在线观看| 亚洲美女毛片| 亚洲人成人99网站| 国产精品初高中精品久久| 久久精品一区二区三区四区| 国产欧美日本在线| 亚洲伊人伊色伊影伊综合网| 欧美中在线观看| 日韩亚洲精品电影| 亚洲日本aⅴ片在线观看香蕉| 亚洲欧美日韩精品综合在线观看 | 欧美日韩情趣电影| 亚洲欧洲精品天堂一级| 欧美中文字幕| 久热精品在线| 狠狠综合久久av一区二区老牛| 亚洲高清色综合| 亚洲狼人综合| 国产精品日韩在线观看| 一区二区久久久久| 亚洲午夜久久久| 一本一本久久a久久精品综合妖精| 亚洲欧美日韩在线不卡| 久久人人爽人人| 亚洲第一网站免费视频| 狠狠狠色丁香婷婷综合久久五月 | 欧美无乱码久久久免费午夜一区 | 欧美成人午夜影院| 国产区在线观看成人精品| 久久成年人视频| 午夜视频在线观看一区二区三区| 欧美精品在线免费播放| 亚洲啪啪91| 久热精品视频在线观看一区| 欧美一区二区日韩| 亚洲国产日韩一区二区| 欧美岛国在线观看| 欧美二区在线|