ITPUB??¨¬3
12ÔÂ΢ÈíHyper-VÐéÄ⻯ɳÁúÖ÷ÌâÕ÷¼¯
ITPUBÂÛ̳ » WEB³ÌÐò¿ª·¢ » ΪʲôÎÒ°ÑhtmlÎļþ(ÓÃÁËxml+xslt)·ÅÔÚlinux»·¾³µÄapacheÏÂÃæ,ÎÒͨ¹ýIEä¯ÀÀÓдíÎó,²»Ä

ÐÂÒ»½ìµÄ΢ÈíMVPÆÀÑ¡ÒѾ­¿ªÊ¼£¬»¶Ó­¸÷Î»ÍÆ¼ö£¡

±êÌâ: ΪʲôÎÒ°ÑhtmlÎļþ(ÓÃÁËxml+xslt)·ÅÔÚlinux»·¾³µÄapacheÏÂÃæ,ÎÒͨ¹ýIEä¯ÀÀÓдíÎó,²»Ä
ÀëÏß lhjiang
ÀÏ»áÔ±



¾«»ªÌùÊý 0
¸öÈ˿ռä 0
¼¼Êõ»ý·Ö 1401 (1238)
ÉçÇø»ý·Ö 10 (10801)
×¢²áÈÕÆÚ 2002-10-17
ÂÛ̳»ÕÕÂ:2
»áÔ±2006¹±Ï×»ÕÕÂÊÚȨ»áÔ±    
      

·¢±íÓÚ 2004-7-8 16:21 
ΪʲôÎÒ°ÑhtmlÎļþ(ÓÃÁËxml+xslt)·ÅÔÚlinux»·¾³µÄapacheÏÂÃæ,ÎÒͨ¹ýIEä¯ÀÀÓдíÎó,²»Ä

ΪʲôÎÒ°ÑhtmlÎļþ·ÅÔÚlinux»·¾³µÄapacheÏÂÃæ,ÎÒͨ¹ýIEä¯ÀÀÓдíÎó,²»ÄÜÏÔʾ.Õâ¸öhtml·ÅÔÚwindowÏÂÃæ,ÓÃIEä¯ÀÀÊǺõÄ.Õâ¸öhtmlÓõ½ÁËxmlºÍxsl.
//test-IndexView.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "DTD/xhtml1-strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">

        <head>
                <link rel="stylesheet" type="text/css" href="capture-css.css"/>
                <script src="LoadXML.js"></script>
        </head>

        <body>
       
                <div id="IDOutputHTML" />

                <script>
                        // Update the tree and dump frames
                        function RefreshViews(Number)
                        {
                                // shows and sorts selected packet
                                window.parent.frames[0].LightPacket(Number);

                                // shows the tree view
                                window.parent.frames[1].LoadPacketTree(Number);

                                // shows the dump view
                                window.parent.frames[2].LoadPacketDump(Number,1,0);
                        }

                        function LightPacket(Number)
                        {
                                //DisplayTransformedXML(Number, "test-psml.xml", "XslIndex.xsl";
                                DisplayTransformedXML(Number, "0624-s.xml", "XslIndex.xsl";
                        }

                        LightPacket(1);

                </script>
        </body>
</html>
///////LoadXML.js

        function DisplayTransformedXML(Number, XMLFile, XSLFile)
        {
        BrowserName = navigator.appName;
        Version = navigator.appVersion;                // Version is not used in the following code

                if (BrowserName == "Netscape"
                {
                var XMLHTTPRequest;
                var XSLStyleSheet;
                var XSLProcessor;
                var XMLSource;

                        // Load the XML source file
                        XMLHTTPRequest = new XMLHttpRequest();
                        XMLHTTPRequest.open("GET", XMLFile, false);
                        XMLHTTPRequest.send(null);
                        XMLSource = XMLHTTPRequest.responseXML;

                        // Load the XSL style sheet
                        XMLHTTPRequest = new XMLHttpRequest();
                        XMLHTTPRequest.open("GET", XSLFile, false);
                        XMLHTTPRequest.send(null);
                        XSLStyleSheet = XMLHTTPRequest.responseXML;

                        // Instantiate the XSLT processor and associate a XSL style sheet with it
                        XSLProcessor= new XSLTProcessor();
                        XSLProcessor.importStylesheet(XSLStyleSheet);

                        /* Code needed to debug some XML object in Mozilla */
                        // var Serializer= new XMLSerializer();
                        // window.alert( Serializer.serializeToString( xslStylesheet ) );
                        /* End code needed to debug some XML object in Mozilla */


                        // Set an optional parameter to the style sheet
                        XSLProcessor.setParameter(null, "selected_packet", Number);

                        // Transform the XML source according to the appropriate style sheet
                        var XMLDOMFragment = XSLProcessor.transformToFragment(XMLSource, document);
                        document.getElementById("IDOutputHTML".innerHTML = "";

                        // Print the result of the transformation into the appropriate element into the HTML page
                        document.getElementById("IDOutputHTML".appendChild(XMLDOMFragment);
                }
                else if (BrowserName == "Microsoft Internet Explorer"
                {
                var XSLStyleSheet;
                var XMLSource;
                var XSLTemplate;
                var XSLProcessor;

                        // Load the XML source file
                        XMLSource = new ActiveXObject("Msxml2.DOMDocument";
                        XMLSource.async = false;
                        XMLSource.resolveExternals = false;
                        XMLSource.load(XMLFile);

                        // Load the XSL style sheet
                        var XSLStyleSheet= new ActiveXObject("Msxml2.FreeThreadedDOMDocument";
                        XSLStyleSheet.load(XSLFile);

                        // We cannot use the following lines, because templates must be created as 'FreeThreadedDOMDocument'
                        // In case we do not want to set parameters to the style sheet, we can use the code below and skip the rest
                        // XSLStyleSheet= document.getElementById("IDStyleSheet";
                        // XSLStyleSheet.async = false;
                        // XSLStyleSheet.resolveExternals = false;
                        // IDOutputHTML.innerHTML= source.transformNode(XSLStyleSheet);                // This line works only in IE; the next one is equivalent and it works also in Mozilla
                        // document.getElementById("IDOutputHTML".innerHTML= XMLSource.transformNode(XSLStyleSheet);

                        XSLStyleSheet.async = false;
                        XSLStyleSheet.resolveExternals = false;

                        // Instantiate the XSLT processor and associate a XSL style sheet with it
                        XSLTemplate= new ActiveXObject("Msxml2.XSLTemplate");
                        XSLTemplate.stylesheet= XSLStyleSheet;
                        XSLProcessor= XSLTemplate.createProcessor();
                        XSLProcessor.input = XMLSource;

                        // Set an optional parameter to the style sheet
                        XSLProcessor.addParameter("selected_packet", Number);

                       
                        // Transform the XML source according to the appropriate style sheet
                        XSLProcessor.transform();

                        // Print the result of the transformation into the appropriate element into the HTML page
                        document.getElementById("IDOutputHTML").innerHTML= XSLProcessor.output;
                }
        }
///////capture-css.css
body,tbody
{
        font-family: Tahoma, Verdana, Arial, Helvetica, sans-serif;
        white-space: nowrap;
}

table
{
        border-collapse: collapse;
}

th
{
        font-size: 0.7em;
        text-align: left;
        vertical-align: top;
        background-color: silver;
}

td
{
        font-size: 0.7em;
        text-align: left;
        vertical-align: top;
}

pre
{
        /* this is a bit big because otherwise Mozilla displays it rather small */
        font-size: 1.2em;
}


/* Formatting for the summary view */
.IndexSelected  {background-color:lime; }


/* Formatting for the tree view */
.directory p { font-size: 0.7em; margin: 0px; white-space: nowrap; }
.directory img { vertical-align: middle; }
.directory div { display: none; margin: 0px; }

.TreeProto {  /*font-weight:bold;*/ }
.TreeField {  }


/* Formatting for the dump view */
.DumpSelected {color:red; font-weight:bold;}
.DumpNormal {color:black }
.DumpTest {color:#eeeeee }

/////XslIndex.xsl
<?xml version="1.0" encoding="UTF-8"?>

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format">
<xslutput method="html" omit-xml-declaration="no" indent="yes"/>


<xslaram name="selected_packet" select="'1'"/>

<!-- This stylesheet does not work when the capture was generated after copying/cutting elements, because -->
<!-- the value in the PSML file does not match the position in the PDML file. -->

<xsl:template match="/">
        <html>
                <head>
                        <link rel="stylesheet" type="text/css" href="capture-css.css"/>
                </head>
                <body>
                        <table border="1">
                                <xsl:apply-templates/>
                        </table>
                </body>
        </html>
</xsl:template>


<xsl:template match="structure">
        <tr>
                <xsl:for-each select="section">
                        <th>
                                <xsl:value-of select="." />
                        </th>
                </xsl:for-each>
        </tr>
</xsl:template>


<xsl:template match="packet">

        <!-- Save the position of the current packet into the 'num' variable -->
        <xsl:variable name="num" select="section" />

        <xsl:choose>

                <xsl:when test="section= $selected_packet">

                        <tr class="IndexSelected">

                                <xsl:for-each select="section">
                                        <td>
       
                                                <xsl:if test="position()=1">
                                                        <img src="pktindex.png"/>
                                                </xsl:if>
       
                                                <xsl:value-of select="."/>
                                        </td>
                                </xsl:for-each>
                        </tr>
                </xsl:when>

                <xsltherwise>

                        <tr onClick="RefreshViews({$num})">

                                <xsl:for-each select="section">
                                        <td>
<!--
        This code should print a 'no break space' in all the cells
        However, it does not work in IE6, while it works perfectly well in Xalan.
        No idea why
-->
<!--
                                            <xsl:text disable-output-escaping="yes">&nbps;</xsl:text>
-->
                                                <xsl:if test="position()=1">
                                                        <img src="pktindex.png"/>
                                                </xsl:if>

                                                <xsl:value-of select="."/>
                                        </td>
                                </xsl:for-each>
                        </tr>
                </xsltherwise>
        </xsl:choose>

</xsl:template>


</xsl:stylesheet>

test-psml.xmlÈçÏÂ:
<?xml version="1.0" encoding="utf-8" ?>
<psml  version="0"  creator="NetBee Packet Decoding Engine"  dissectors="04-jan-2004">
<structure>
<section>N.</section>
<section>Time</section>
<section>Data Link</section>
<section>Network</section>
<section>Transport</section>
<section>Application</section>
</structure>
<packet>
<section>1</section>
<section>22:04:01.207911</section>
<section>Eth: 000B5D-20CD02 => FFFFFF-FFFFFF</section>
<section>IP: 0.0.0.0 => 255.255.255.255 (Len 351)</section>
<section>UDP: Port 68 => 67</section>
<section>DHCP Request: Transaction ID 3462696297 DHCP Request</section>
</packet>
<packet>
<section>2</section>
<section>22:04:01.215198</section>
<section>Eth: 00095B-2D759A => FFFFFF-FFFFFF</section>
<section>ARP Request: who has 192.168.0.2 tell 192.168.0.1</section>
<section></section>
<section>Data</section>
</packet>
<packet>
<section>3</section>
<section>22:04:01.332685</section>
<section>Eth: 00095B-2D759A => FFFFFF-FFFFFF</section>
<section>IP: 192.168.0.1 => 255.255.255.255 (Len 576)</section>
<section>UDP: Port 67 => 68</section>
<section>DHCP Reply: Transaction ID 3462696297 DHCP Acknowledgement</section>
</packet>
<packet>
<section>4</section>
<section>22:04:01.337146</section>
<section>Eth: 000B5D-20CD02 => FFFFFF-FFFFFF</section>
<section>ARP Request: who has 192.168.0.2 tell 192.168.0.2</section>
<section></section>
<section></section>
</packet>
</psml>


Ö»¿´¸Ã×÷Õß    ¶¥²¿
ÀëÏß omencathay
²ËÌïÊØÍûÕß


¾«»ªÌùÊý 7
¸öÈ˿ռä 80
¼¼Êõ»ý·Ö 5173 (268)
ÉçÇø»ý·Ö 7016 (222)
×¢²áÈÕÆÚ 2002-10-21
ÂÛ̳»ÕÕÂ:7
ÏÖÈιÜÀíÍŶӳÉÔ±     
      

·¢±íÓÚ 2004-7-8 22:43 
<script>Ö¸Ã÷ʹÓõĽű¾ÓïÑÔ
<script language="javascript">

°Ñ´íÎóÌáʾÌù³öÀ´¿´¿´


Ö»¿´¸Ã×÷Õß    ¶¥²¿
Ïà¹ØÄÚÈÝ


CopyRight 1999-2006 itpub.net All Right Reserved.
±±¾©ð©³½¹ãÓòÍøÂçÐÅÏ¢¼¼ÊõÓÐÏÞ¹«Ë¾. °æÈ¨ËùÓÐ
E-mail:Webmaster@itpub.net
¾©ICPÖ¤:010037ºÅ ÁªÏµÎÒÃÇ ·¨ÂɹËÎÊ