整合營銷服務商

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

          免費咨詢熱線:

          JavaScript中裝載XML文檔

          E和FierFox瀏覽器對于這裝載同域的XML文件和裝載XML字符串這兩種情況,分別有各自的處理方式。IE的解析器支持XML文件和XML字符串的加載,而火狐瀏覽器使用單獨的解析器把XML載入內存,然后轉換為可通過JS訪問的XML DOM對象。

          以下是js代碼:

          /* 
           * 封裝IE和Firefox類瀏覽器中裝載同域XML或XML字符串的方法,
           * @param flag true表示裝載XML的文件,false表示裝載XML的字符串
           * @param xmldoc flag為true表示XML文件的路徑,flag為false表示XML字符串
           */
           
          function loadXML(flag,xmldoc){
           if(window.activeXObject) {
           //IE瀏覽器
           //創建空的XML對象
           var activexName = ["MSXML2.DOMDdcument","Miscrosoft.XmlDom"];
           var xmlObj;
           for(var i = 0; i < actviexName.length;i++){
           try{
           xmlObj = new ActiveXObject(activeName[i]);
           break;
           }catch(e){
           
           }
           }
           if(xmlObj){
           //同步方式裝載XML數據,確保在文檔完全加載之前解析器不會繼續腳本的執行
           xmlObj.async = false;
           if(flag){
           //load用于加載文件,loadXML用于加載字符串
           //裝載XML文件
           xmlObj.load(xmldoc);
           }else{
           //裝載XML的字符串
           xmlObj.loadXML(xmldoc);
           }
           //返回根節點
           return xmlObj;
           //返回根元素節點
           return xmlObj.documentElement;
           }else{
           alert("裝載XML文檔的對象創建失敗");
           return null;
           }
           }else if(document.implementation.creatDocument){
           //針對Firefox類瀏覽器
           var xmlObj;
           if(flag){
           //裝載XML文件
           //先創建一個空的xml dom對象
           xmlObj = document.implementation.creatDocument("","",null);
           if(xmlObj){
           //同步方式進行裝載
           xmlObj.async = false;
           xmlObj.load(xmldoc);
           return xmlObj.documentElement;
           }else{
           alert("裝載XML文檔的對象創建失敗");
           return null;
           }
           }else{
           //裝載XML的字符串
           //創建一個dom解析器
           xmlObj = new DOMParser();
           //把xml字符串解析成要返回的dom對象
           var docRoot = xmlObj.parerFromString(xmldoc,"test/xml");
           return docRoot.documentElement;
           }
           }
           alert("裝載XML文檔的對象創建失敗");
           return null;
          }
          

          html代碼

          <html>
           <head>
           <title>TODO supply a title</title>
           <meta charset="UTF-8">
           <meta name="viewport" content="width=device-width, initial-scale=1.0">
           <script type="text/javascript" src="load.js"></script>
           <script type="text/javascript">
           function test(){
           //裝載同域的XML文件
           var domxml1 = loadXML(true,"test.xml");
           //裝載XML字符串
           var domxml2 = loadXML(true,"<xml>123</xml>");
           alert("");
           }
           </script>
           </head>
           <body>
           <input type="button" value="test" onclick="test()"/>
           </body>
          </html>
          

          XML頁內容

          <?xml version="1.0" encoding="UTF-8"?>
          <root>
           木子松就是我,我就是木子松
          </root>
          

          總結

          對于裝載同域的XML文件,IE瀏覽器和火狐類瀏覽器都是先創建一個空的XML文檔對象,然后用“xmlDoc.load(“**.xml”)”告知解析器加載名為**.xml的XML文檔

          對于裝載XML字符串,IE瀏覽器和裝載XML文件的方式一樣,利用微軟內建的解析器加載XML字符串;而火狐類瀏覽器,則是通過"var parser = new DOMParser()"創建dom解析器,然后利用方法parserFromString()加載 XML字符串。另外DOMParser對象的load()方法可用于加載文件。

          跨域訪問處于安全方面的原因,現在的瀏覽器不允許跨域訪問。如果想跨域訪問,則必須把XML文件放到自己的服務器上,否則,xmlDoc.load()將產生錯誤“Access is denied”。

          入dll

          1.通過NuGet安裝dll(2種方法)

          1.1可以在Visual Studio中打開“解決方案資源管理器”,鼠標右鍵點擊“引用”,“管理NuGet包”,然后搜索“Free Spire.Doc”,點擊“安裝”。等待程序安裝完成。

          1.2將以下內容復制到PM控制臺安裝:

          Install-Package FreeSpire.Doc -Version 10.2

          2.手動添加dll引用

          可通過手動下載包到本地,然后解壓,找到BIN文件夾下的Spire.Doc.dll。然后在Visual Studio中打開“解決方案資源管理器”,鼠標右鍵點擊“引用”,“添加引用”,將本地路徑BIN文件夾下的dll文件添加引用至程序。


          將HTML轉為XML

          轉換時,可參考如下代碼來進行:

          1. 創建Document類的對象。
          2. 調用Document.LoadFromFile(string fileName, FileFormat fileFormat)方法加載HTML文檔。
          3. 通過Document.SaveToFile(string fileName, FileFormat fileFormat)方法保存為XML格式到指定路徑。

          C#

          using Spire.Doc;
          
          namespace HTMLtoXML
          {
              class Program
              {
                  static void Main(string[] args)
                  {
                      //創建Document類的對象
                      Document doc = new Document();
          
                      //加載html文件
                      doc.LoadFromFile("sample.html",FileFormat.Html);
          
                      //保存為XML格式
                      doc.SaveToFile("HTMLtoXML.xml", FileFormat.Xml);
                      System.Diagnostics.Process.Start("HTMLtoXML.xml");
                  }
              }
          }

          轉換效果:

          —End—

          文以C#及VB.NET后端程序代碼示例展示如何將HTML轉為XML文件。轉換時,調用Word API -Free Spire.Doc for .NET 提供的文檔加載方法及文檔保存的方法來實現。轉換的代碼步驟很簡單,具體可參考以下內容。


          引入dll

          1.通過NuGet安裝dll(2種方法)

          1.1可以在Visual Studio中打開“解決方案資源管理器”,鼠標右鍵點擊“引用”,“管理NuGet包”,然后搜索“Free Spire.Doc”,點擊“安裝”。等待程序安裝完成。

          1.2將以下內容復制到PM控制臺安裝:

          Install-Package FreeSpire.Doc -Version 10.2

          2.手動添加dll引用

          可通過手動下載包到本地,然后解壓,找到BIN文件夾下的Spire.Doc.dll。然后在Visual Studio中打開“解決方案資源管理器”,鼠標右鍵點擊“引用”,“添加引用”,將本地路徑BIN文件夾下的dll文件添加引用至程序。


          將HTML轉為XML

          轉換時,可參考如下代碼來進行:

          1. 創建Document類的對象。
          2. 調用Document.LoadFromFile(string fileName, FileFormat fileFormat)方法加載HTML文檔。
          3. 通過Document.SaveToFile(string fileName, FileFormat fileFormat)方法保存為XML格式到指定路徑。

          C#

          using Spire.Doc;
          
          namespace HTMLtoXML
          {
              class Program
              {
                  static void Main(string[] args)
                  {
                      //創建Document類的對象
                      Document doc = new Document();
          
                      //加載html文件
                      doc.LoadFromFile("sample.html",FileFormat.Html);
          
                      //保存為XML格式
                      doc.SaveToFile("HTMLtoXML.xml", FileFormat.Xml);
                      System.Diagnostics.Process.Start("HTMLtoXML.xml");
                  }
              }
          }

          vb.net

          Imports Spire.Doc
          
          Namespace HTMLtoXML
              Class Program
                  Private Shared Sub Main(args As String())
                      '創建Document類的對象
                      Dim doc As New Document()
          
                      '加載html文件
                      doc.LoadFromFile("sample.html", FileFormat.Html)
          
                      '保存為XML格式
                      doc.SaveToFile("HTMLtoXML.xml", FileFormat.Xml)
                      System.Diagnostics.Process.Start("HTMLtoXML.xml")
                  End Sub
              End Class
          End Namespace

          轉換效果:

          —End—


          主站蜘蛛池模板: 在线免费视频一区二区| 国产AV一区二区三区传媒| 日韩一区二区三区免费播放| 亚洲av不卡一区二区三区| 国产高清在线精品一区二区三区| 无码少妇一区二区浪潮免费| 日本在线视频一区二区| 国产精品亚洲午夜一区二区三区| 99精品国产高清一区二区| 精品亚洲综合在线第一区| 国产精品视频第一区二区三区 | 日本不卡一区二区三区视频| 国精无码欧精品亚洲一区| 国产精品日本一区二区在线播放 | 精品国产日韩亚洲一区在线| 韩国女主播一区二区| 四虎在线观看一区二区| 在线一区二区观看| 一区在线免费观看| 中文字幕一区二区人妻| 人妻少妇精品视频一区二区三区| 欧洲无码一区二区三区在线观看| 亚洲一区中文字幕在线电影网| 色综合视频一区中文字幕| 北岛玲在线一区二区| 丝袜无码一区二区三区| 无码国产精品一区二区免费vr| 51视频国产精品一区二区| 国产精品一区二区久久沈樵| 精品人体无码一区二区三区| 无码免费一区二区三区免费播放 | asmr国产一区在线| 亚洲日韩国产精品第一页一区| 精品无码人妻一区二区三区| 日韩一区二区a片免费观看| 日本一区二区三区中文字幕| 亚洲熟妇av一区二区三区漫画| 精品女同一区二区三区免费站| 鲁丝丝国产一区二区| 国产一区二区精品久久岳| 国产99视频精品一区|