Heim Backend-Entwicklung XML/RSS-Tutorial Rufen Sie XSL flexibel auf, um XML-Dokumente zu analysieren (JS asynchron).

Rufen Sie XSL flexibel auf, um XML-Dokumente zu analysieren (JS asynchron).

Feb 27, 2017 pm 05:06 PM

   1.新建一个vs2003的web工程,取名为xmlTest

     2.将工程目录下的WebForm1.aspx中内容全部删除,只留下顶部的一条语句:

<%@ Page language="c#" Codebehind="WebForm1.aspx.cs" AutoEventWireup="false" Inherits="XMLTest.WebForm1" %>
Nach dem Login kopieren

3.修改WebForm1.aspx.cs中内容,在Page_Load中加入:

以下是引用片段:

    XmlDocument doc=new XmlDocument(); 
    String xmlfile=string.Empty; 
    xmlfile=Context.Request.PhysicalapplicationPath+(Request.QueryString["sel"].ToString()=="xml"?"\\hello.xml":"\\hello.xsl"); 
    doc.Load(xmlfile); 
    Response.Write(doc.InnerXml);
Nach dem Login kopieren

4.在工程根目录下新增test.htm,并设为工程首页:

以下是引用片段:

<html> 
<head> 
  <title></title> 
</head> 
<body> 
  <div id="resTree"></div> 
  <FONT face="宋体"></FONT><input type="button" value="执行" onclick="GetXml()"><BR> 
  <script language="JScript"> 
  var srcTree,xsltTree,xt; 
  var http_request = false; 
    
  function GetXml() 
  {     
   srcTree = new ActiveXObject("Msxml2.FreeThreadedDOMDocument"); 
    srcTree.async=false; 
    xsltTree= new ActiveXObject("Msxml2.FreeThreadedDOMDocument"); 
    xsltTree.async = false; 
    xt=new ActiveXObject("MSXML2.XSLTemplate"); 
   resTree.innerHTML=""; 
    makeRequest("WebForm1.aspx?sel=xml",GetXml_CB); 
  } 
     
    function makeRequest(url,callback) { 
        http_request = false; 
        if (window.xmlhttpRequest) { // Mozilla, Safari,... 
            http_request = new XMLHttPRequest(); 
            if (http_request.overrideMimeType) { 
                http_request.overrideMimeType(&#39;text/xml&#39;); 
            } 
        } else if (window.ActiveXObject) { // IE 
            try { 
                http_request = new ActiveXObject("Msxml2.XMLHTTP"); 
            } catch (e) { 
                try { 
                    http_request = new ActiveXObject("Microsoft.XMLHTTP"); 
                } catch (e) {} 
            } 
        }
        if (!http_request) { 
            alert(&#39;Giving up :( Cannot create an XMLHTTP instance&#39;); 
            return false; 
        } 
        http_request.onreadystatechange = callback; 
        http_request.open(&#39;GET&#39;, url, true); 
        http_request.send(null); 
    }
    function GetXml_CB() {
        if (http_request.readyState == 4) { 
            if (http_request.status == 200) {     
    srcTree.loadXML(http_request.responseText); 
    makeRequest("WebForm1.aspx?sel=xsl",GetXsl_CB); 
            } else { 
                alert(&#39;There was a problem with the request.&#39;); 
            } 
        }
    } 
     
    function GetXsl_CB(){ 
       if (http_request.readyState == 4) { 
         if (http_request.status == 200) { 
       xsltTree.loadXML(http_request.responseText); 
       xt.stylesheet=xsltTree; 
       var proc=xt.createProcessor(); 
       proc.input=srcTree; 
       proc.transform(); 
       resTree.innerHTML=proc.output; 
            } else { 
                alert(&#39;There was a problem with the request.&#39;); 
            } 
        } 
   
    }
    function makeRequest(url,callback) { 
     http_request = false; 
     if (window.XMLHttpRequest) { // Mozilla, Safari,... 
            http_request = new XMLHttpRequest(); 
            if (http_request.overrideMimeType) { 
                http_request.overrideMimeType(&#39;text/xml&#39;); 
            } 
        } else if (window.ActiveXObject) { // IE 
            try { 
                http_request = new ActiveXObject("Msxml2.XMLHTTP"); 
            } catch (e) { 
                try { 
                    http_request = new ActiveXObject("Microsoft.XMLHTTP"); 
                } catch (e) {} 
            } 
        }
        if (!http_request) { 
            alert(&#39;Giving up :( Cannot create an XMLHTTP instance&#39;); 
            return false; 
        } 
        http_request.onreadystatechange = callback; 
        http_request.open(&#39;GET&#39;, url, true); 
        http_request.send(null); 
    }
  </script>
</body> 
</html>
Nach dem Login kopieren

5.运行工程,看看效果吧!

hello.xml(注意:我的xml文档中并没有指定对应的xsl解析文件名)

以下是引用片段:

<?xml version=&#39;1.0&#39;?>
<breakfast-menu> 
  <food> 
    <name>Belgian Waffles</name> 
    <price>$5.95</price> 
    <description>Two of our famous Belgian Waffles  
      with plenty of real maple syrup.</description> 
    <calories>650</calories> 
  </food> 
  <food> 
    <name>Strawberry Belgian Waffles</name> 
    <price>$7.95</price> 
    <description>Light Belgian waffles covered with  
     strawberries and whipped cream.</description> 
    <calories>900</calories> 
  </food> 
  <food> 
    <name>Berry-Berry Belgian Waffles</name> 
    <price>$8.95</price> 
    <description>Light Belgian waffles covered  
      with an assortment of fresh berries  
      and whipped cream.</description> 
    <calories>900</calories> 
  </food> 
  <food> 
    <name>French Toast</name> 
    <price>$4.50</price> 
    <description>Thick slices made from our homemade  
     sourdough bread.</description> 
    <calories>600</calories> 
  </food> 
  <food> 
    <name>Homestyle Breakfast</name> 
    <price>$6.95</price> 
    <description>Two eggs, bacon or sausage, toast,  
      and our ever-popular hash browns.</description> 
    <calories>950</calories> 
  </food> 
</breakfast-menu>
Nach dem Login kopieren

hello.xsl

以下是引用片段:

<?xml version="1.0"?> 
<xsl:stylesheet version="1.0"  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
  <xsl:template match="/breakfast-menu">
        <xsl:for-each select="food"> 
          <DIV STYLE="background-color:teal; color:white; padding:4px"> 
            <SPAN STYLE="font-weight:bold; color:white"><xsl:value-of select="name"/></SPAN> 
            至 <xsl:value-of select="price"/> 
          </DIV> 
          <DIV STYLE="margin-left:20px; margin-bottom:1em; font-size:10pt"> 
            <xsl:value-of select="description"/> 
            <SPAN STYLE="font-style:italic"> 
              <xsl:value-of select="calories"/> 嘿嘿 
            </SPAN> 
          </DIV> 
        </xsl:for-each>
  </xsl:template> 
</xsl:stylesheet>
Nach dem Login kopieren

xml文档只有纯粹的数据,如果需要显示到html页面中的话,一般需要使用定制的xsl文档来解析,或者手工通过js来读取xml中的值显示到html中的dom树中,当使用xsl文档来解析时,相应的xml文档中必须指定对应的xsl文档才能正常显示,但当有些程序动态输出xml文档时,并没有指定相应的xsl文档,这时就必须通过其它途径来加载相应的xsl文档来解析,当然,在服务器端输出xml文档时,通过一些xml api也可以实现,我这儿描述的是通过js来实现的一种方式。用这种方式的话,就抛开了服务器平台的限制,服务器端只需要输出相应的xml文档(.net/j2ee都可以),并且将对应的xsl文档输出给客户端(可以输出流或直接在客户端加载xsl文档)。

     这里有几个需要注意的地方,我们一般是使用Msxml2.Document组件来加载xml文档的,但当动态使用xsl解析xml文档时,必须使用Msxml2.FreeThreadedDOMDocument这种自由线程的组件,同时使用MSXML2.XSLTemplate模板组件来加载xml,xsl数据,通过MSXML2.XSLTemplate的transform方法,就可以动态的用xsl来解析xml数据了,另外,IE5开始,系统默认的xml组件是msxml2,如果需要使用更新的msxml组件需要安装更新的msxml组件包,并指定新的名称,例如Msxml2.FreeThreadedDOMDocument.4.0,现在最新的msxml组件是6.0beta,可在M$网站下载。

 以上就是灵活调用xsl来解析xml文档(js异步)的内容,更多相关内容请关注PHP中文网(www.php.cn)!


Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Ist die Konversionsgeschwindigkeit beim Umwandeln von XML in PDF auf Mobiltelefon schnell? Ist die Konversionsgeschwindigkeit beim Umwandeln von XML in PDF auf Mobiltelefon schnell? Apr 02, 2025 pm 10:09 PM

Die Geschwindigkeit der mobilen XML zu PDF hängt von den folgenden Faktoren ab: der Komplexität der XML -Struktur. Konvertierungsmethode für mobile Hardware-Konfiguration (Bibliothek, Algorithmus) -Codierungsoptimierungsmethoden (effiziente Bibliotheken, Optimierung von Algorithmen, Cache-Daten und Nutzung von Multi-Threading). Insgesamt gibt es keine absolute Antwort und es muss gemäß der spezifischen Situation optimiert werden.

Wie konvertiere ich XML -Dateien in PDF auf Ihrem Telefon? Wie konvertiere ich XML -Dateien in PDF auf Ihrem Telefon? Apr 02, 2025 pm 10:12 PM

Mit einer einzigen Anwendung ist es unmöglich, XML -zu -PDF -Konvertierung direkt auf Ihrem Telefon zu vervollständigen. Es ist erforderlich, Cloud -Dienste zu verwenden, die in zwei Schritten erreicht werden können: 1. XML in PDF in der Cloud, 2. Zugriff auf die konvertierte PDF -Datei auf dem Mobiltelefon konvertieren oder herunterladen.

Wie konvertieren Sie XML in Ihr Telefon in PDF? Wie konvertieren Sie XML in Ihr Telefon in PDF? Apr 02, 2025 pm 10:18 PM

Es ist nicht einfach, XML direkt auf Ihr Telefon in PDF umzuwandeln, kann jedoch mit Hilfe von Cloud -Diensten erreicht werden. Es wird empfohlen, eine leichte mobile App zu verwenden, um XML -Dateien hochzuladen und generierte PDFs zu empfangen und sie mit Cloud -APIs zu konvertieren. Cloud -APIs verwenden serverlose Computerdienste, und die Auswahl der richtigen Plattform ist entscheidend. Bei der Behandlung von XML -Parsen und PDF -Generation müssen Komplexität, Fehlerbehebung, Sicherheit und Optimierungsstrategien berücksichtigt werden. Der gesamte Prozess erfordert, dass die Front-End-App und die Back-End-API zusammenarbeiten, und es erfordert ein gewisses Verständnis einer Vielzahl von Technologien.

Empfohlenes XML -Formatierungswerkzeug Empfohlenes XML -Formatierungswerkzeug Apr 02, 2025 pm 09:03 PM

XML -Formatierungs -Tools können Code nach Regeln eingeben, um die Lesbarkeit und das Verständnis zu verbessern. Achten Sie bei der Auswahl eines Tools auf die Anpassungsfunktionen, den Umgang mit besonderen Umständen, die Leistung und die Benutzerfreundlichkeit. Zu den häufig verwendeten Werkzeugtypen gehören Online-Tools, IDE-Plug-Ins und Befehlszeilen-Tools.

Gibt es eine mobile App, die XML in PDF umwandeln kann? Gibt es eine mobile App, die XML in PDF umwandeln kann? Apr 02, 2025 pm 08:54 PM

Eine Anwendung, die XML direkt in PDF konvertiert, kann nicht gefunden werden, da es sich um zwei grundlegend unterschiedliche Formate handelt. XML wird zum Speichern von Daten verwendet, während PDF zur Anzeige von Dokumenten verwendet wird. Um die Transformation abzuschließen, können Sie Programmiersprachen und Bibliotheken wie Python und ReportLab verwenden, um XML -Daten zu analysieren und PDF -Dokumente zu generieren.

So öffnen Sie Web.xml So öffnen Sie Web.xml Apr 03, 2025 am 06:51 AM

Um eine Web.xml -Datei zu öffnen, können Sie die folgenden Methoden verwenden: Verwenden Sie einen Texteditor (z.

So öffnen Sie das XML -Format So öffnen Sie das XML -Format Apr 02, 2025 pm 09:00 PM

Verwenden Sie die meisten Texteditoren, um XML -Dateien zu öffnen. Wenn Sie eine intuitivere Baumanzeige benötigen, können Sie einen XML -Editor verwenden, z. B. Sauerstoff XML -Editor oder XMLSPY. Wenn Sie XML -Daten in einem Programm verarbeiten, müssen Sie eine Programmiersprache (wie Python) und XML -Bibliotheken (z. B. XML.etree.elementtree) verwenden, um zu analysieren.

So exportieren Sie PDF mit XML So exportieren Sie PDF mit XML Apr 03, 2025 am 06:45 AM

Es gibt zwei Möglichkeiten, XML in PDF zu exportieren: Verwenden von XSLT und Verwendung von XML -Datenbindungsbibliotheken. XSLT: Erstellen Sie ein XSLT -Stylesheet und geben Sie das PDF -Format an, um XML -Daten mit dem XSLT -Prozessor zu konvertieren. XML -Datenbindungsbibliothek: XML -Datenbindungsbibliothek importieren PDF -Dokumentobjekt Lade XML -Daten Export PDF -Dateien. Welche Methode für PDF -Dateien besser ist, hängt von den Anforderungen ab. XSLT bietet Flexibilität, während die Datenbindungsbibliothek einfach zu implementieren ist. Bei einfachen Conversions ist die Datenbindungsbibliothek besser und für komplexe Conversions ist XSLT besser geeignet.

See all articles