Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Rato de Fórum

Como buscar um nó no XML?

Recommended Posts

Boa noite.

 

Como faço para buscar um determinado nó dentro de um XML que é formatado pelo XSL e printado pelo ASP? Por exemplo, digamos que eu tenha um XML enorme com 200 produtos, e quero exibir apenas um com todos os nós que pertencem aquele produto especifico.

 

Tenho o seguinte codigo:

 

ARQUIVO ASP

<%
			set xml=server.createobject("microsoft.xmldom")
			set xsl=server.createobject("microsoft.xmldom")
			
			xml.load(server.mappath("lista.xml"))
			xsl.load(server.mappath("lista.xsl"))
			
			str = xml.transformNode(xsl)
			
			str = Replace(str, "<", "<")
			str = Replace(str, ">", ">")
		
			Response.Write str
			
			set xml=nothing
			set xsl=nothing
		%>

ARQUIVO LISTA.XML

<?xml version="1.0" encoding="ISO-8859-2"?>
<produto>
	<linha>
		<nome><![CDATA[ Lorem ]]></nome>
		<finalidade><![CDATA[ Lorem ]]></finalidade>
		<link><![CDATA[?action=am&item=Lorem]]></link>
	</linha>
		<linha>
		<nome><![CDATA[ Lorem 2 ]]></nome>
		<finalidade><![CDATA[ Lorem 2 ]]></finalidade>
		<link><![CDATA[?action=am&item=Lorem2]]></link>
	</linha>
</produto>

ARQUIVO LISTA.XSL

<?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">
	<xsl:template match="/">
		<div id="produtos">
		<xsl:for-each select="produto/linha">
			<div class="boxProduto">
				<h2><xsl:value-of select="nome"/></h2><xsl:value-of select="finalidade"/>
				<div style=" text-align: right"><a class="link1"><xsl:attribute name="href"><xsl:value-of select="link"/></xsl:attribute>[+] detalhes</a></div>
			</div>
		</xsl:for-each>
		<div style="clear: both"></div>
		</div>
	</xsl:template>
</xsl:stylesheet>

Obrigado!

Compartilhar este post


Link para o post
Compartilhar em outros sites

se for via query você pode fazer assim:

 

 

<div style=" text-align: right"><a class="link1"><xsl:attribute name="href">Index.asp?nome=<xsl:value-of select="nome"/><xsl:value-of select="link"/></xsl:attribute>[+] detalhes</a></div>

na requisição faz isso:

set raiz=xmldoc.documentElement
set registro=raiz.selectsinglenode("linha[nome='"&request.querystring("nome")&"']")
raiz.removechild(registro)

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.