0

私は XSLT ドメインの初心者です。XSLT を介して XML ファイルのコンテンツをレンダリングする html ファイルがあります。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

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 に答える