2013-09-02 2 views
0

Я новичок в XSLT-домене, у меня есть html-файл, который отображает содержимое XML-файла через XSLT. Теперь после некоторого динамического изменения XML-кода XSLT ведет себя в соответствии с этим динамическим изменением это XML, а страница html визуализирует этот динамический контент или необходимо снова открыть этот html-файл, в котором указан этот xml.Является ли XSLT-файл динамическим изменением в файле XML

Мой 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> 

благодаря

ответ

0

Рендеринг в html отменяет nd в xml и ups xslt. Если изменения в xml не определены в xslt, то рендеринг не будет выполняться в html.

0

Если вы редактируете свой XML после его открытия в своем браузере, вам нужно снова запустить процесс преобразования XSLT.

HTML, который вы видите в браузере, является результатом процесса рендеринга, который не запускается динамически. Я думаю, вы можете посмотреть свой XML для изменения и перестроить HTML-файл, но это будет подход командной строки.

+0

«вам нужно будет снова запустить процесс преобразования XSLT», можно привести пример – zaree

+0

Например, [перезагрузка страницы] (http://stackoverflow.com/a/3715123/802365) –

3

Возможно, вам понравится Saxon-CE для такого применения. Saxon-CE запускает XSLT 2.0 в браузере и позволяет вам писать правила шаблонов, которые отвечают определенным событиям. Если XML находится на сервере, то, конечно, он не будет автоматически замечать, что XML на стороне сервера изменился, но вы можете организовать связь с приложением на сервере, чтобы получать уведомления о таких событиях.

Смежные вопросы