整合營銷服務商

          電腦端+手機端+微信端=數據同步管理

          免費咨詢熱線:

          XML 實例

          些例子演示了 XML 文件、XML 格式化和 XML 轉換(XSLT)。

          還演示了與 XML 一起使用的 JavaScript(AJAX)。

          查看 XML 文件

          查看一個簡單的 XML 文件(note.xml)

          查看一個帶有錯誤的相同的 XML 文件

          查看一個 XML 的 CD 目錄

          查看一個 XML 的植物目錄

          查看一個 XML 的食物菜單

          實例解釋

          XML 和 CSS

          查看一個 XML 的 CD 目錄

          查看對應的 CSS 文件

          顯示由 CSS 文件格式化的 CD 目錄

          實例解釋

          XML 和 XSLT

          查看一個 XML 的食物菜單

          查看對應的 XSLT 樣式表

          顯示由 XSLT 樣式表格式化的食物菜單

          實例解釋

          解析 XML 和 XML DOM

          查看一個簡單的 XML 文件(note.xml)

          解析 XML 文件 - 跨瀏覽器實例

          解析 XML 字符串 - 跨瀏覽器實例

          實例解釋

          XML to HTML

          查看一個 XML 的 CD 目錄

          把 XML 數據顯示為 HTML 表格

          實例解釋

          XML 應用程序

          查看一個 XML 的 CD 目錄

          在 div 元素中顯示 XML 數據

          XML 節點導航

          一個簡單的 CD 目錄應用程序

          實例解釋

          來自服務器的 XML 輸出

          查看 ASP 如何返回 XML

          查看 PHP 如何返回 XML

          查看來自數據庫的 XML 輸出

          實例解釋

          XML DOM 高級

          獲取 XML 元素的值

          獲取 XML 屬性的值

          更改 XML 元素的值

          把一個新的屬性添加到 XML 元素

          創建一個新的 XML 元素

          刪除一個 XML 元素

          實例解釋

          如您還有不明白的可以在下面與我留言或是與我探討QQ群308855039,我們一起飛!

          大數據項目開發過程中,ETL(Extract-Transform-Load)必不可少。即使目前 JSON 非常流行,開發人員也必定有機會面對遠古系統的挑戰,而 XML 格式的數據源作為經典存在渾身上下散發著濃濃 old money 的味道。

          因為有 Newtonsoft.Json 這樣優秀的 JSON 框架存在,開發人員可以很容易的對 JSON 格式的字符串反序列化。但是 XML 格式的數據就沒有這么方便了:雖然 .NET 中內置了對 XML 序列化和反序列化的支持,但遇到需要對接外部數據時就不是很方便了。

          使用 XmlReader 讀取數據

          從 XML 中提取目標數據最高效,也最麻煩的方式是直接使用 XmlReader :

          <employee xmlns="urn:empl-hire">
          <ID>12365</ID>
          <hire-date>2003-01-08</hire-date>
          <title>Accountant</title>
          </employee>

          使用以下代碼對上述 hireDate.xml 文件讀取:

          using (XmlReader reader = XmlReader.Create("hireDate.xml")) {
           // Move to the hire-date element.
           reader.MoveToContent();
           reader.ReadToDescendant("hire-date");
           // Return the hire-date as a DateTime object.
           DateTime hireDate = reader.ReadElementContentAsDateTime();
           Console.WriteLine("Six Month Review Date: {0}", hireDate.AddMonths(6));
          }

          輸出:

          Six Month Review Date: 7/8/2003 12:00:00 AM

          使用 XDocument 讀取數據

          在 .NET Framework 3.5 發布后的時間里,開發人員可以使用 XDocument 來生成和解析 XML 文檔,這要比 XmlReader 方便得多:

          string str =
          @"<?xml version=""1.0""?>
          <!-- comment at the root level -->
          <Root>
           <Child>Content</Child>
          </Root>";
          XDocument doc = XDocument.Parse(str);
          Console.WriteLine(doc.XPathSelectElement("//Child"));

          輸出:

          <Child>Content</Child>

          但硬編碼的 XPath 并不方便調試,而且需要時刻關注空引用的問題。在 XML 格式復雜、項目工程比較大時使用起來也不方便。

          一種把 XML 轉換為 XML 的技術: XSLT

          在計算機科學中,可擴展樣式表轉換語言(英語:Extensible Stylesheet Language Transformations,縮寫XSLT)是一種樣式轉換標記語言,可以將XML數據檔轉換為另外的XML或其它格式,如HTML網頁,純文字。XSLT最末的T字母表示英語中的“轉換”(transformation)。

          簡單來說,開發人員可以借助 XSLT 技術編寫一個 XML 文件,并使用該文件將一種 XML 格式轉換為另一種 XML 。即:在對接復雜格式 XML 數據源時,開發人員可以編寫一個后綴為 .xsl 的文件,并使用該文件將數據源格式轉換為自己需要的格式(比如可以適配 XML 反序列化的格式)。

          從一個簡單的 XML 文件開始:

          <?xml version="1.0" encoding="ISO-8859-1"?>
          <catalog>
          <cd>
          <title>Empire Burlesque</title>
          <artist>Bob Dylan</artist>
          <country>USA</country>
          <company>Columbia</company>
          <price>10.90</price>
          <year>1985</year>
          </cd>
          .
          .
          .
          </catalog>

          如果直接在瀏覽器打開這個文件:

          假設我們只關心所有的 title 信息,可以使用下面的 cdcatalog.xsl 文件,該文件可以將 cdcatalog.xml 轉為 XmlSerializer 所需要的格式:

          <?xml version="1.0" encoding="ISO-8859-1"?>
          <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
          <xsl:output method="xml" indent="yes"/>
          <xsl:template match="/">
          <ArrayOfString xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
          <xsl:for-each select="catalog/cd">
          <string>
          <xsl:value-of select="title"/>
          </string>
          </xsl:for-each>
          </ArrayOfString>
          </xsl:template>
          </xsl:stylesheet>

          為了可以在瀏覽器中直接觀察到轉換效果,可以選擇把 XSL 樣式表鏈接到 XML 文檔:向 XML 文檔(”cdcatalog.xml”)添加 XSL 樣式表引用即可。

          <?xml version="1.0" encoding="ISO-8859-1"?>
          <?xml-stylesheet type="text/xsl" href="cdcatalog.xsl"?>
          <catalog>
          <cd>
          <title>Empire Burlesque</title>
          <artist>Bob Dylan</artist>
          <country>USA</country>
          <company>Columbia</company>
          <price>10.90</price>
          <year>1985</year>
          </cd>
          .
          .
          .
          </catalog>

          刷新瀏覽器,打開開發者工具:

          也可以在: https://www.coderbusy.com/demos/2021/1531/cdcatalog.xml 查看在線示例。

          從上面的操作可以看出,調試 XLS 文件的成本是很低的,開發者可以很容易對 XLS 文件進行更改,并在短時間之內得到運行結果。

          在 C# 中使用 XSLT 技術

          在 C# 中,可以使用 XslCompiledTransform 進行 XSL 轉換。以下代碼展示這個轉換過程:

          XslCompiledTransform xsl = new XslCompiledTransform();
          xsl.Load("cdcatalog.xsl");
          var sb = new StringBuilder();
          using (var sw = new StringWriter(sb))
          {
          using (var xw = new XmlTextWriter(sw) { Formatting = Formatting.Indented })
          {
           xsl.Transform("cdcatalog.xml", xw);
          }
          }
          var xml = sb.ToString();
          Console.WriteLine(xml);

          以上代碼會產生如下輸出:

          <ArrayOfString xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
          <string>Empire Burlesque</string>
          <string>Hide your heart</string>
          <string>Greatest Hits</string>
          <string>Still got the blues</string>
          <string>Eros</string>
          .
          .
          .
          </ArrayOfString>

          反序列化 XML 字符串

          轉換 XML 不是目的,能直接拿到數據對象才是。以上的代碼完成了格式轉換,接著需要對轉換好的 XML 字符串反序列化:

          var xmlSerializer = new XmlSerializer(typeof(List<string>));
          using (var ms = new MemoryStream(Encoding.UTF8.GetBytes(xml)))
          {
           var list = (List<string>) xmlSerializer.Deserialize(ms);
          foreach (var item in list)
          {
           Console.WriteLine(item);
          }
          }

          以上代碼借助 XmlSerializer 實現了反序列化功能,這會產生以下輸出:

          Empire Burlesque
          Hide your heart
          Greatest Hits
          Still got the blues
          Eros
          ...

          總結與源碼

          本文所述的轉換和反序列化技術已經在真實的生產環境中得到驗證,千萬級的數據處理也毫不費力。

          本文包含的演示的代碼和數據可以在 Gitee 上找到:

          https://gitee.com/coderbusy/demo/tree/master/hello-xslt/HelloXslt

          現代網絡技術的世界中,XML(可擴展標記語言)和 HTML(超文本標記語言) 是兩個非常重要的技術。盡管它們都使用標簽和屬性的格式來描述數據,但它們在形式和用途上有顯著的區別。

          概述

          什么是 XML?

          XML,即 Extensible Markup Language(可擴展標記語言),是一種用于存儲和傳輸數據的文本格式。XML 的設計宗旨是強調數據的結構化和準確性,提供了一種公認的標準格式。最主要的特點是它的自我描述性,即數據和數據的定義集成在一起,使得它在數據交換和數據存儲方面具有極大優勢。

          • 什么是 XML?基礎入門介紹

          什么是 HTML?

          而 HTML,即 HyperText Markup Language(超文本標記語言),則是一種用于創建網頁的標準標記語言。HTML 的主要用途是描述網頁的內容和結構,通過與 CSS(層疊樣式表)和 JavaScript(腳本語言)的結合,實現豐富和互動的網絡應用。

          區別詳解

          用途

          • XML:主要用作數據存儲和數據交換的格式。通常用于各類應用程序之間的數據傳遞。例如,網絡服務(Web Services)中,SOAP(簡單對象訪問協議)使用 XML 格式來封裝消息內容。(SOAP 協議詳解:什么是 SOAP 以及它如何工作?)
          • HTML:主要用于展示數據和內容。HTML 文檔定義了網頁的結構,它和瀏覽器一起使得用戶可以在互聯網上瀏覽各種信息和資源。

          結構和特性

          XML:

          1. 自定義標簽:XML 允許用戶自定義標簽,這是它最大的特性之一。通過自定義標簽,數據可以更加準確地描述和組織。
          2. 嚴格的語法要求:每一個開始標簽都必須有一個閉合標簽,標簽必須正確嵌套,同時所有屬性必須用引號括起來。
          3. 數據中心:XML 集中在描述和傳輸數據,而不是顯示數據的外觀。
          <book>
              <title>Learning XML</title>
              <author>John Doe</author>
              <price>29.99</price>
          </book>
          

          HTML:

          1. 預定義標簽:HTML 提供了很多預定義標簽,用于構建和格式化網頁內容。不允許用戶自定義標簽。
          2. 寬松的語法要求:雖然 HTML5 強調標簽的閉合,但瀏覽器會容錯,對一些語法錯誤進行修正。
          3. 展示中心:HTML 的主要目的是展示數據,定義網頁的內容和結構,包括文本、圖片、視頻等。
          <!DOCTYPE html>
          <html>
          <head>
              <title>My Web Page</title>
          </head>
          <body>
              <h1>Welcome to My Web Page</h1>
              <p>This is an introductory paragraph.</p>
          </body>
          </html>
          

          數據驗證

          • XML:XML 支持數據驗證。可以使用 DTD(文檔類型定義)或者 XML Schema 來定義和驗證 XML 數據的結構和內容,使得數據更加精確和可靠。
          • HTML:HTML 沒有原生的數據驗證功能,它更多關注于瀏覽器如何解釋和顯示頁面。對于用戶提交的數據,可以通過表單驗證和 JavaScript 來進行驗證和處理。

          可擴展性和標準化

          • XML:XML 是完全可擴展的。由于沒有預定義的標簽,用戶可以根據需要創建適合自己應用的標簽集。這使得 XML 非常靈活,可以適應不同的應用和需求。
          • HTML:HTML 是沒有可擴展性的,它的標簽集是由 W3C(萬維網聯盟)規定的標準。不允許用戶隨意添加新的標簽,但它提供了一些擴展機制,例如使用自定義數據屬性(data-* 屬性)。

          處理工具

          • XML:加工和處理 XML 數據的工具和接口非常多,包括 SAX(Simple API for XML)、DOM(Document Object Model)、XPath 和 XSLT 等。它們為讀取、操作和轉換 XML 數據提供了豐富的支持。
          • HTML:HTML 的處理主要依賴于瀏覽器和各種網頁開發技術,比如 JavaScript、CSS、DOM 操作等,以實現動態和交互式網頁內容。

          如何調試 XML、JSON 格式的請求

          下面使用 Apifox 來修正和測試基于 XML 的 API 請求。

          創建與測試 XML 請求

          假設您需要向服務器發送 XML 格式的注冊信息。您可以按照以下步驟使用 Apifox 進行設置:

          • 請求類型:POST
          • 請求 URL(需替換為有效地址):http://127.0.0.1:8000/register
          • 請求頭設置:Content-Type: application/xml
          • 請求體內容如下:
          <userRegistration>
              <username>john_doe</username>
              <password>securePassword123</password>
              <email>john_doe@example.com</email>
          </userRegistration>
          
          • 響應體示例:
          <userRegistrationResponse>
              <userId>12345</userId>
              <username>john_dane</username>
              <status>success</status>
          </userRegistrationResponse>
          

          在 Apifox 中配置您的請求

          打開 Apifox,選擇開始新項目或者繼續現有項目。接著點擊“新建接口”,在接口設置頁面,選擇 POST 作為請求方法,并輸入正確的請求 URL,比如 https://api.example.com/register (這里的 URL 應替換為真實可用的 URL)。在配置請求體時,選擇 XML 格式,并將上述 XML 數據粘貼到配置區。

          發起請求并觀察結果

          配置完成后,轉到“運行測試”頁面,點擊“發送”按鈕以向服務器發送構建的請求。請求發送后,檢查響應部分,您應該看到類似于提供的 XML 格式的響應數據。

          您還可以使用響應界面上的預覽功能,該功能能讓您以更直觀的方式查看服務器返回的數據。

          總結

          XML 和 HTML 雖然在標簽和屬性的語法上有所相似,但它們在使用場景、結構和功能上有顯著的區別。XML 強調數據的準確傳輸和結構化存儲,適合用于數據的交換和持久化存儲等場景。而 HTML 強調內容呈現和用戶交互,主要用于網頁設計和開發。


          主站蜘蛛池模板: 国产日韩精品一区二区在线观看播放| 亚洲一区二区观看播放| 久久亚洲中文字幕精品一区 | 丝袜人妻一区二区三区网站| 无码人妻一区二区三区免费 | 国产精品亚洲专一区二区三区 | 无码av中文一区二区三区桃花岛| 日韩一区二区三区电影在线观看| 黄桃AV无码免费一区二区三区 | 无码人妻精品一区二| 99精品国产一区二区三区2021| 精品一区二区高清在线观看| 日韩制服国产精品一区| 日韩福利视频一区| 日韩一区二区在线观看视频| 国产成人一区二区在线不卡| 国产免费一区二区三区| 国产精品无码一区二区三级| 色婷婷亚洲一区二区三区| 久久久无码一区二区三区| 波多野结衣av高清一区二区三区| 男插女高潮一区二区| 亚洲熟妇av一区二区三区下载| 丝袜人妻一区二区三区网站| 国模精品一区二区三区视频| 亚洲视频一区网站| 亚洲图片一区二区| 久久久无码精品国产一区| 日本成人一区二区三区| 日本一区二区在线| 久久无码人妻一区二区三区| 成人午夜视频精品一区| 精品国产一区二区三区久久蜜臀 | 国产情侣一区二区三区| 三上悠亚国产精品一区| 91午夜精品亚洲一区二区三区 | 国产另类ts人妖一区二区三区| 国产成人无码AV一区二区在线观看| 福利一区二区视频| 国产日韩AV免费无码一区二区| 久久精品无码一区二区日韩AV|