Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    cancellare da un buffer di un foglio XSL i tag HTML con DOM

    qualcuno ha un'idea di come sia possibile io ci sto provando ma trovo delle incongruenze e difficoltà nelle gerarchie.
    maz
    "0 è tutto finito. 1 è solo l'inizio"
    HO IL CERTIFICATO DI RESISTENZA.

  2. #2
    Ciao,
    un foglio XSLT è xml valido a tutti gli effetti, che linguaggio usi per parsarlo con DOM?
    per favore NIENTE PVT TECNICI da sconosciuti

  3. #3
    ciao fabio,
    uso ASP (...l'azienda). il problema è che eliminando un tag HTML, se esso contiene istruzioni XSLT, "pare" che vengano cancellate anche queste ultime...del resto sono gerarchicamente ad un livello più basso ma non della stessa famiglia.
    cosa strana, ma forse sbaglio io, se elimino l'elemento HTML mi elimina ad esempio gli elementi table ma non i tr, i td e nemmeno il body e i link. ecco il codice ASP:
    codice:
    dim PageXsl
    set PageXsl = Server.CreateObject("MSXML2.FreeThreadedDOMDocument.3.0")
    PageXsl.async = false
    PageXsl.load (Application("xsl_path") & "benvenuto.xsl")
    ''' PROVA
    removeHTML(PageXsl)
    Response.Write(PageXsl.xml)
    Response.End
    Dim objDOM
    Function removeHTML(objDOM)
    ' funzione che elimina i tag HTML dall'albero XSL
    Dim objRoot, objRootChilds, objCurrentNode, sCurrentNodeName, i
    Dim objCurrentNodeTpl 'variabili secondo ciclo
    Set objRoot = objDOM.documentElement
    Set objRootChilds = objRoot.childNodes
    for each objCurrentNode in objRootChilds
    	If objCurrentNode.nodeName = "xsl:template" Then 'trovo il template
    		for each objCurrentNodeTpl in objCurrentNode.childNodes 'scorro gli elementi del template
    			If objCurrentNodeTpl.nodeName = "html" Then
    				'elimina il tag HTML
    				objCurrentNode.removeChild objCurrentNodeTpl 
    				'elimina il tag BODY
    				objCurrentNodeTpl.removeChild objCurrentNodeTpl.selectSingleNode("body") 
    				'elimina il tag A e TR
    				'objCurrentNodeTpl.removeChild objCurrentNodeTpl.selectSingleNode("a")
    			End If
    		next			
    	End If
    next
    'removeHTML = objDOM
    End Function
    codice:
    <?xml version="1.0" encoding="UTF-8"?>
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:rs="urn:schemas-microsoft-com:rowset" xmlns:z="#RowsetSchema">
    <xsl:output method="html" indent="no"/>
    <xsl:template match="/">
    <html>
    <head>
    <title>Elenco CHIAMATE BENVENUTO</title>
    </head>
    <link rel="stylesheet" href="./css/InstRB.css" type="text/CSS"/>
    	<body onload="presetOldValues();parent.topFrame.showStatistiche('linkChiamateBenvenuto');" onunload="parent.topFrame.hideLinkInterventi();">
    		<form action="elencoChiamateBenvenuto.asp" name="r_int" method="get" onsubmit="return controlla(this)">
    		<table width = "600" border = "0" align = "center" class ="form" cellpadding="0" cellspacing="0">
    			<tr class ="titoloForm">
    				<td align="center" colspan="5">
    					<table cellpadding="0" cellspacing="0" border="0" width="100%">
    						<tr class="titoloForm">
    							<td width="26">&#160;</td>
    							<td>Elenco Chiamate Benvenuto</td>
    							<td align="right" width="26">
    								<a href="javaScript:ApriLink('./help/Help_formElencoPratiche.asp?titolo=Elenco interventi','Help_formElencoPratiche',600,400)">
    									[img]./images/immaginehelp.gif[/img]
    								</a>
    							</td>
    						</tr>
    					</table>
    				</td>
    			</tr>
    			<tr class="bodyForm" width='100%'>
    				<td>	
    				<table width="100%" border = "0" align = "center" class="bodyForm" cellpadding="0" cellspacing="0">
    					<tr height="30">
    						<td>&#160;</td>
    					</tr>
    					<tr>
    						<td colspan="5" align='center'>
    							<table border="0" class="bodyForm" align="center">
    								<tr>
    									<td width='33' rowspan='4'>&#160;</td>
    									<td  class="Costanti" width="110">Banca:</td>
    									<td  align='left'>
    										<select name="P_BANCA" style="width:258px;">
    											<xsl:for-each select="xml/combo4/rs:data/z:row">
    												<xsl:choose>
    													<xsl:when test="@ABI = '00000'">
    														<option value="{@ABI}" selected="selected"><xsl:value-of select="@DENOMINAZIONE"/></option>
    													</xsl:when>
    													<xsl:otherwise>
    														<option value="{@ABI}"><xsl:value-of select="@DENOMINAZIONE"/></option>
    													</xsl:otherwise>
    												</xsl:choose>
    											</xsl:for-each>
    										</select>
    									</td>
    								</tr>
    								<tr>
    									<td  class="Costanti" width="80">Esito:</td>
    									<td  align='left'>
    										<select name="P_TIPO_ESITO" style="width:258px;">
    											<xsl:for-each select="xml/combo2/rs:data/z:row">
    													<option value="{@ID}"><xsl:value-of select="@DESCRIZIONE"/></option>
    											</xsl:for-each>
    										</select>
    									</td>
    								</tr>
    							</table>
    						</td>
    					</tr>
    					<tr height="30"><td colspan="5">&#160;</td></tr>
    					<tr height="30" width='100%' >
    						<td width="14%">&#160;</td>
    						<td width='3%' align='left'  class="Costanti">dal </td>
    						<td  align='left' width="20%">
    							<select name="GG_DAL">
    								<script language="Javascript">
    									<xsl:text disable-output-escaping="no">
    											function comboDay(sel){
    												var i;
    												for(i=1;i&lt;=31;i++){
    													if(i==sel)
    													{
    														document.write ("&lt;option value=" + i + " selected&gt;" + i + "&lt;/option&gt;");
    													}
    													else
    													{
    														document.write ("&lt;option value=" + i + "&gt;" + i + "&lt;/option&gt;");
    													}
    														}
    													}
    											</xsl:text>
    											comboDay(<xsl:value-of select="substring-before(/xml/QueryString3,'/')"/>);
    										</script>
    									</select>
    									<select name="MM_DAL">
    										<script language="Javascript">
    											<xsl:text disable-output-escaping="no">
    													function comboMonth(sel){
    														var i;
    														for(i=1;i&lt;=12;i++){
    															if(i==sel)
    																document.write ("&lt;option value=" + i + " selected&gt;" + i + "&lt;/option&gt;");
    															else
    																document.write ("&lt;option value=" + i + "&gt;" + i + "&lt;/option&gt;");
    														}
    													}
    											</xsl:text>
    											comboMonth(<xsl:value-of select="substring-before(substring-after(/xml/QueryString3,'/'),'/')"/>);
    										</script>
    									</select>
    									<select name="AA_DAL">
    										<script language="Javascript">
    											<xsl:text disable-output-escaping="no">
    													function comboYear(sel){
    														var i;
    														var ii;
    														var today = new Date();
    														var currentYear = today.getYear();
    														
    														for(i=1998;i&lt;=currentYear+1 ;i++){
    															s = new String(i) ;
    															ii = s.substring(0);
    															if(ii==sel)
    															{
    																document.write ("&lt;option value=" + i + " selected&gt;" + i + "&lt;/option&gt;");
    															}
    															else
    															{
    																document.write ("&lt;option value=" + i + "&gt;" + i + "&lt;/option&gt;");
    															}
    														}
    													}
    											</xsl:text>
    										comboYear(<xsl:value-of select="substring-after(substring-after(/xml/QueryString3,'/'),'/')"/>);
    										</script>
    									</select>&#160;
     									<input name="but1" type="button" value="..." onClick="javascript:showHideFla('GG_DAL','MM_DAL','AA_DAL','r_int','1');" style="height:21px;width=20px"/>
    									<div id="Cal1" style="position:absolute;display:none">
    										<OBJECT classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" 
    												codebase="/flash/swflash.cab#version=6,0,0,0" 
    												WIDTH="160" HEIGHT="180" 
    												id="CalendarFF_ENG" ALIGN="">
     											<PARAM NAME= "movie" VALUE="Cal.swf"/>
     											<PARAM NAME="loop" VALUE="false"/>
     											<PARAM NAME="menu" VALUE="false"/>
     											<PARAM NAME="quality" VALUE="high"/>
     											<PARAM NAME="bgcolor" VALUE="#FEF3D6"/>
     											<EMBED src="Cal.swf" 
     												loop="false" 
     												menu="false" 
     												quality="high" 
     												bgcolor="#FEF3D6"  
     												WIDTH="160" 
     												HEIGHT="180" 
     												NAME="CalendarFF_ENG" ALIGN="" 
     												TYPE="application/x-shockwave-flash" 
     												PLUGINSPAGE="http://www.macromedia.com/go/getflashplayer">
     											</EMBED>
    										</OBJECT>
    									</div>
    								</td>
    								<td  width='3%' align= "left" class="Costanti">al</td>
    								<td  align='left' width="25%">
    									<select name="GG_AL">
    										<script language="Javascript">
    											comboDay(<xsl:value-of select="substring-before(/xml/QueryString4,'/')"/>);
    										</script>
    									</select>
    									<select name="MM_AL">
    										<script language="Javascript">
    											comboMonth(<xsl:value-of select="substring-before(substring-after(/xml/QueryString4,'/'),'/')"/>);
    										</script>
    									</select>
    									<select name="AA_AL">
    										<script language="Javascript">
    										comboYear(<xsl:value-of select="substring-after(substring-after(/xml/QueryString4,'/'),'/')"/>);
    										</script>
    									</select>&#160;
    									<input name="but" type="button" value="..." onClick="javascript:showHideFla('GG_AL','MM_AL','AA_AL','r_int','2');" style="height:21px;width=20px"/>
    									<div id="Cal2" style="position:absolute;display:none">
    										<OBJECT classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" 
    												codebase="/flash/swflash.cab#version=6,0,0,0"  
    												WIDTH="160" HEIGHT="180" 
    												id="CalendarFF_ENG" ALIGN="">
     											<PARAM NAME= "movie" VALUE="Cal.swf"/>
     											<PARAM NAME="loop" VALUE="false"/>
     											<PARAM NAME="menu" VALUE="false"/>
     											<PARAM NAME="quality" VALUE="high"/>
     											<PARAM NAME="bgcolor" VALUE="#FEF3D6"/>
     											<EMBED 
     												src="Cal.swf" 
     												loop="false" 
     												menu="false" 
     												quality="high" 
     												bgcolor="#FEF3D6"  
     												WIDTH="160" 
     												HEIGHT="180" 
     												NAME="CalendarFF_ENG" 
     												ALIGN="" 
     												TYPE="application/x-shockwave-flash" 
     												PLUGINSPAGE="http://www.macromedia.com/go/getflashplayer">
     											</EMBED>
    										</OBJECT>
    									</div>										
    								</td>
    								</tr>
    								<tr height="40"><td>&#32;<input type='hidden' name='P_TIPO_PRODOTTO' value='0'/></td></tr>
    								<tr height="40">
    								<td align="center" colspan="5">
    									<input type="hidden" name="captionStato" value=""/>
    									<input type="hidden" name="captionAzienda" value=""/>
    									<input type="hidden" name="P_DAL" value=""/>
    									<input type="hidden" name="P_AL" value=""/>
    									<input type="submit" class="bluebutton" value="Visualizza"/>
    
    								</td>
    							</tr>
    						</table>
    						</td>
    					</tr>
    					</table>
    				</form>
    			</body>
    		</html>
    	</xsl:template>
    </xsl:stylesheet>
    "0 è tutto finito. 1 è solo l'inizio"
    HO IL CERTIFICATO DI RESISTENZA.

  4. #4
    Originariamente inviato da max161
    ciao fabio,
    uso ASP (...l'azienda). il problema è che eliminando un tag HTML, se esso contiene istruzioni XSLT, "pare" che vengano cancellate anche queste ultime
    ...del resto sono gerarchicamente ad un livello più basso ma non della stessa famiglia.
    Sì infatti questo è normale, visto che stiamo parlando di un albero gerarchico


    cosa strana, ma forse sbaglio io, se elimino l'elemento HTML mi elimina ad esempio gli elementi table ma non i tr, i td e nemmeno il body e i link. ecco il codice ASP:
    Questo effettivamente è strano...

    Hai provato ad usare Xpath? Mi apre sia possibile utilizzarlo anche con classic ASP (ma una ricerca in google dovrebe confermartelo).
    L'utilizzo di XPath per individuare i nodi (applicando successivamente dom sui nodi trovati), dovrebbe permetterti di eliminare in modo chirurgico solo i nodi che ti interessano
    per favore NIENTE PVT TECNICI da sconosciuti

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.