Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 国产美女精品一区二区三区,日本一级特黄特色大片,最近中文字幕最新在线视频

          整合營銷服務商

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

          免費咨詢熱線:

          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—

          MLHTTPrequest 對象

          Ajax 的核心是 JavaScript 對象 XmlHTTPRequest。該對象在 Internet Explorer 5 中首次引入,它是一種支持異步請求的技術。簡而言之,XmlHTTPRequest 使您可以使用 JavaScript 向服務器提出請求并處理響應,而不阻塞用戶。通過 XMLHTTPRequest 對象,Web 開發人員可以在頁面加載以后進行頁面的局部更新。

          方法

          open(String method,String url,boolean asynch,String username,String password)

          send(content)

          setRequestHeader(String header,String value)

          getAllResponseHeaders()

          getResponseHeader(String header)

          abort()

          常用詳細解析

          open():該方法創建 HTTP 請求

          第一個參數是指定提交方式(post、get)

          第二個參數是指定要提交的地址是哪

          第三個參數是指定是異步還是同步(true 表示異步,false 表示同步)

          第四和第五參數在 HTTP 認證的時候會用到,是可選的。

          setRequestHeader(String header,String value):設置消息頭(使用 post 方式才會使用到,

          get 方法并不需要調用該方法)。

          xmlHTTP.setRequestHeader("Content-type","application/x-www-form-urlencoded");

          send(content):發送請求給服務器

          如果是 get 方式,并不需要填寫參數,或填寫 null,如果是 post 方式,把要提交的參數寫上去。

          常用屬性

          onreadystatechange:請求狀態改變的事件觸發器(readyState 變化時會調用此方法),一般用于指定回調函數。

          readyState:請求狀態 readyState 一改變,回調函數被調用,它有 5 個狀態:

          0:未初始化

          1:open 方法成功調用以后

          2:服務器已經應答客戶端的請求

          3:交互中。HTTP 頭信息已經接收,響應數據尚未接收。

          4:完成。數據接收完成

          responseText:服務器返回的文本內容

          responseXML:服務器返回的兼容 DOM 的 XML 內容

          status:服務器返回的狀態碼

          statusText:服務器返回狀態碼的文本信息

          回調函數是什么

          回調函數就是接收服務器返回的內容!


          主站蜘蛛池模板: 久久精品无码一区二区三区| 亚洲一本一道一区二区三区| 亚洲日韩国产一区二区三区| 日本一区二区三区免费高清在线| 国产嫖妓一区二区三区无码| 精品久久国产一区二区三区香蕉| 人妻少妇AV无码一区二区| 日本不卡一区二区三区视频| 成人区精品一区二区不卡亚洲| 香蕉久久AⅤ一区二区三区| 无码少妇一区二区三区| 日韩精品无码久久一区二区三 | 国产精品亚洲一区二区无码| 激情内射日本一区二区三区| 无码少妇丰满熟妇一区二区| 国精无码欧精品亚洲一区| 韩国资源视频一区二区三区| 亚洲一区二区三区电影| 国产av一区二区精品久久凹凸 | 亚洲中文字幕无码一区二区三区 | 国产成人精品视频一区二区不卡| 国产在线乱子伦一区二区| 中文字幕一区二区三区在线不卡 | 久久久91精品国产一区二区三区| 日本精品一区二区久久久| 91亚洲一区二区在线观看不卡| 日韩精品无码视频一区二区蜜桃| 一区二区高清在线观看| 日本精品一区二区久久久| 好吊视频一区二区三区| 成人区人妻精品一区二区不卡网站| 一区二区不卡久久精品| 亚洲乱色熟女一区二区三区丝袜| 国产一区二区高清在线播放| 又硬又粗又大一区二区三区视频| 亚洲综合无码AV一区二区 | 久久精品国产一区二区三区不卡| 国产精品免费一区二区三区| 伊人色综合一区二区三区| 中文字幕一区二区三区精彩视频 | 国产高清精品一区|