0

我是 XSLT 领域的新手,我有一个 html 文件,它通过 XSLT 呈现 XML 文件的内容。现在,在 XML 中的一些动态变化之后,XSLT 的行为根据该动态变化是 XML 和html 页面呈现动态内容或应该需要重新打开引用该 xml 的 html 文件。

我的 XML 文件就像

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="XSL.xsl"?>
<Arithmetic>
    <Function>
        <FunctionName>-</FunctionName>
    </Function>
    <Function>
        <FunctionName>/</FunctionName>
    </Function>
    <Function>
        <FunctionName>*</FunctionName>
    </Function>
    <Function>
        <FunctionName>MOD</FunctionName>
    </Function>
    <Function>
        <FunctionName>^</FunctionName>
    </Function>
   </Arithmetic>

我的 XSLT 文件是

**<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:template match="/*">
  <html>
  <body>
  <table border="1">
    <tr bgcolor="#9acd32">
      <th>Title</th>

    </tr>
    <xsl:for-each select="/*/Function">
    <tr>
      <td><xsl:value-of select="FunctionName"/></td>

    </tr>
    </xsl:for-each>
  </table>
  </body>
  </html>
</xsl:template>

</xsl:stylesheet>** 

我的示例 html 就像

<html>
<head>
<SCRIPT LANGUAGE=javascript>

 function createDom(stringXML){
        var xmlDoc = new ActiveXObject("Microsoft.XMLDOM"); // create a xmlDOM object
         xmlDoc.async="false"
         xmlDoc.loadXML(stringXML);
return xmlDoc;
} 
function onOk()
{
    xmlDom2 = createDom("<?xml version="1.0"?><?xml-stylesheet type="text/xsl" href="XSL.xsl"?><Geometric><Function><FunctionName>-</FunctionName></Function><Function><FunctionName>/</FunctionName></Function><Function><FunctionName>*</FunctionName></Function><Function><FunctionName>MOD</FunctionName></Function><Function><FunctionName>^</FunctionName></Function></Geometric>");
    //now how could i give ref of that updated xml in the iframe or how the iframe will render this update xml 
}
</SCRIPT >

</head>
<body >
    <div id = "mainDiv" class = "scrollbar" style = "border:1px inset;height: 186px; overflow: auto;">

        <IFRAME src = "XML.xml" id="IFRAME" style="visibility: visible;" ></IFRAME> 
        <INPUT id=btnOk onclick=onOk() type=button size=35 value=Change XML >

    </div>
</body>
</html>

谢谢

4

3 回答 3

3

您可能希望查看 Saxon-CE 的此类应用程序。Saxon-CE 在浏览器中运行 XSLT 2.0,并允许您编写响应特定事件的模板规则。如果 XML 在服务器上,那么它当然不会自动注意到服务器端 XML 已更改,但您可以安排与服务器上的应用程序通信以获取此类事件的通知。

于 2013-09-02T16:13:55.423 回答
0

html 中的呈现将取决于 xml 和 xslt 标记。如果 xml 中的更改未在 xslt 中定义,则渲染将不会在 html 中发生。

于 2013-09-02T13:52:38.283 回答
0

如果在浏览器中打开 XML 后对其进行编辑,则需要再次运行 XSLT 转换过程。

您在浏览器中看到的 HTML 是非动态运行的呈现过程的结果。我想您可以观察您的 XML 以进行更改并重建 HTML 文件,但这将是一种命令行方法。

于 2013-09-02T13:58:55.207 回答