Link to home
Start Free TrialLog in
Avatar of ivanblue
ivanblueFlag for United States of America

asked on

Search for word or phrase in XML generating highlighted text using XSLT

Hello, I need to search for a word or phrase inside an XML document and generate an HTML result page. I don't know if I can do this using XSLT or some other technology. I'm using PHP v5.2.17.

This is a sample of my XML:

<?xml version="1.0" encoding="ISO-8859-1"?>
<impuesto>
&#9;<titulo>Renta del Pequeño Contribuyente</titulo>
&#9;<ley_articulo>
&#9;&#9;<titulo>Ley 2421/04</titulo>
&#9;&#9;
&#9;&#9;<contenido>
&#9;&#9;&#9;<p>Concordada con los Decretos Nº 8.593/06 , decreto 5610/10 y la Res. Nº 44/10 Art. con su anexo A y B</p>
&#9;&#9;&#9;
&#9;&#9;&#9;<p><strong>Definiciones y Conceptos</strong></p>
&#9;&#9;&#9;
&#9;&#9;&#9;<decreto>
&#9;&#9;&#9;&#9;<titulo>Decreto Nº 8.593/06</titulo>
&#9;&#9;&#9;&#9;<contenido>
&#9;&#9;&#9;&#9;&#9;<p><strong>Artículo 1º - Conceptos</strong> Para la aplicación del Impuesto a la Renta del Pequeño Contribuyente se tendrán en cuenta los conceptos, &#9;definiciones y aclaraciones indicadas en este artículo:</p>

&#9;&#9;&#9;&#9;&#9;<p><strong>a) Administración o Administración Tributaria:</strong> La Subsecretaría de Estado de Tributación del Ministerio de Hacienda, creada por Ley Nº 109/91 y sus modificaciones.</p>

&#9;&#9;&#9;&#9;&#9;<p><strong>b) Cese o clausura de actividades o cierre definitivo de negocios:</strong> Proceso formal mediante el cual concluyen definitivamente las actividades económicas de un Contribuyente afectadas al presente Impuesto. Este concepto no incluye a la "clausura" como sanción, establecida por el Artículo 174 de la ley; tampoco incluye la suspensión temporal de actividades del negocio, entendiéndose temporal hasta que se presente a la Administración Tributaria la Declaración Jurada de Cierre a que se refiere el Artículo 14 "Cese o Clausura de Actividades" de este Decreto.</p>
&#9;&#9;&#9;&#9;</contenido>
&#9;&#9;&#9;</decreto>
&#9;&#9;
&#9;&#9;&#9;<decreto>
&#9;&#9;&#9;&#9;<titulo>Decreto Nº 5.697/10</titulo>
&#9;&#9;&#9;&#9;<contenido>
&#9;&#9;&#9;&#9;&#9;<p>Modificase el literal c) del Artículo 1º del Decreto Nº 8593/2006, el cual queda redactado de la siguiente manera:</p>

&#9;&#9;&#9;&#9;&#9;<p><strong>c) Comprobante de Venta:</strong> Documento autorizado por la Administración Tributaria  para respaldar actos de compra, venta, contrataciones y prestaciones de servicios. Su timbrado, uso y documentos complementarios se rigen por el Decreto Nº 6539/2005 y sus normas modificatorias y complementarias".</p>

&#9;&#9;&#9;&#9;&#9;<p><strong>d) Empresa Unipersonal:</strong> Toda unidad productiva perteneciente a una persona física, en la que se utilice en forma conjunta el capital y el trabajo, propios o ajenos, en cualquier proporción, con el objeto de obtener un resultado económico, con excepción de los servicios de carácter personal.</p>

&#9;&#9;&#9;&#9;&#9;<p>A los fines del Impuesto, las empresas individuales de responsabilidad limitada, los condominios de personas físicas y las sucesiones indivisas son consideradas empresas unipersonales.</p>

&#9;&#9;&#9;&#9;&#9;<p><strong>e) Impuesto o IRPC:</strong> Impuesto a la Renta del Pequeño Contribuyente.</p>

&#9;&#9;&#9;&#9;&#9;<p><strong>f) Ley:</strong> La Ley Nº 125/91, con sus modificaciones.</p>

&#9;&#9;&#9;&#9;&#9;<p><strong>g) Servicio de carácter personal:</strong> Aquel para cuya realización es preponderante la utilización del factor trabajo.</p>

&#9;&#9;&#9;&#9;&#9;<p><strong>h) Servicio no personal:</strong> Aquel para cuya realización es necesaria la utilización conjunta del capital y del trabajo en cualquier proporción o aquél en cuya realización se utiliza de forma exclusiva el factor capital.</p>
&#9;&#9;&#9;&#9;</contenido>
&#9;&#9;&#9;</decreto>
&#9;&#9;
&#9;&#9;&#9;<resolucion>
&#9;&#9;&#9;&#9;<titulo>Resolución Nº 1560/06</titulo>
&#9;&#9;&#9;&#9;<contenido>
&#9;&#9;&#9;&#9;&#9;<p><strong>Artículo 1º - Conceptos</strong>  Para la aplicación de la presente Resolución se tendrán en cuenta los conceptos, definiciones y aclaraciones indicadas en este artículo:</p>

&#9;&#9;&#9;&#9;&#9;<p><strong>a) Administración o Administración Tributaria:</strong> La Subsecretaria de Estado de Tributación del Ministerio de Hacienda, creada por Ley Nº 109/91 y sus modificaciones.</p>
&#9;&#9;&#9;&#9;&#9;<p><strong>b) Impuesto o IRPC:</strong> Impuesto a la Renta del Pequeño Contribuyente.</p>
&#9;&#9;&#9;&#9;&#9;<p><strong>c) Ley:</strong> La Ley Nº 125/91, con sus modificaciones. </p>
&#9;&#9;&#9;&#9;&#9;<p><strong>d) Decreto:</strong> El Decreto Nº 8593 de fecha 11 de diciembre de 2006.</p>
&#9;&#9;&#9;&#9;&#9;<p><strong>e) IRACIS:</strong> Impuesto a la Renta Comercial, Industrial o de Servicios.</p>
&#9;&#9;&#9;&#9;&#9;<p><strong>f) IVA:</strong> Impuesto al Valor Agregado</p>
&#9;&#9;&#9;&#9;</contenido>
&#9;&#9;&#9;</resolucion>

&#9;&#9;&#9;<resolucion>
&#9;&#9;&#9;&#9;<titulo>Resolución Nº 44/10Art.  1º.-</titulo>
&#9;&#9;&#9;&#9;<contenido>
&#9;&#9;&#9;&#9;&#9;<p>Modifícase el literal g) del Artículo 1º de la Resolución Nº 1560/06, que quedará redactado del siguiente modo:</p>

&#9;&#9;&#9;&#9;&#9;<p><strong>g) Comprobantes:</strong> Las facturas, Boletas de Ventas, Tickets, Autofacturas y demás documentos previstos en el Decreto N° 6539/05 y sus normas modificatorias y  complementarias.".</p>
&#9;&#9;&#9;&#9;</contenido>
&#9;&#9;&#9;</resolucion>
&#9;&#9;&#9;
&#9;&#9;</contenido>
&#9;</ley_articulo>&#9;&#9;
&#9;
&#9;<ley_articulo>
&#9;&#9;<titulo>Artículo 42 - Primer Párrafo</titulo>
&#9;&#9;<contenido>
&#9;&#9;&#9;<p><strong>Hecho Generador:</strong> El Impuesto a la Renta del Pequeño Contribuyente Gravará los ingresos provenientes de la realización de actividades comerciales, industriales o de servicio que no sean de carácter personal.</p>

&#9;&#9;&#9;<decreto>
&#9;&#9;&#9;&#9;<titulo>Decreto Nº 8.593/06</titulo>
&#9;&#9;&#9;&#9;<contenido>
&#9;&#9;&#9;&#9;&#9;<p>Artículo 2º - Objeto: El Impuesto grava los ingresos de fuente paraguaya provenientes de la realización de actividades comerciales, industriales o de servicios que no sean de carácter personal, obtenidos por los sujetos pasivos definidos en el Artículo 3º del presente Reglamento.</p>
&#9;&#9;&#9;&#9;</contenido>
&#9;&#9;&#9;</decreto>
&#9;&#9;</contenido>
&#9;</ley_articulo>
</impuesto>

Open in new window


And the generated HTML should show the "impuesto", the "articulo" and the paragraph "p" or "titulo" where the searched text is contained, highlighting it:

(Search word: "scelerisque")

<table class="table table-hover">
&#9;<thead>
&#9;&#9;<tr>
&#9;&#9;&#9;<th colspan="3">Resultados de la b&uacute;squeda</th>
&#9;&#9;</tr>
&#9;</thead>
&#9;<tbody>
&#9;&#9;<tr>
&#9;&#9;&#9;<td width="100"><a href="#">IVA</a></td>
&#9;&#9;&#9;<td width="100"><a href="#">Art&iacute;culo 1</a></td>
&#9;&#9;&#9;<td>Cras sit amet nibh libero, in gravida nulla. Nulla vel metus <span class="highlighted">scelerisque</span> ante sollicitudin commodo. Cras purus odio, vestibulum in vulputate at, tempus viverra turpis. Fusce condimentum nunc ac nisi vulputate fringilla. Donec lacinia congue felis in faucibus.</td>
&#9;&#9;</tr>
&#9;&#9;<tr>
&#9;&#9;&#9;<td><a href="#">IVA</a></td>
&#9;&#9;&#9;<td><a href="#">Art&iacute;culo 3</a></td>
&#9;&#9;&#9;<td>Cras sit amet nibh libero, in gravida nulla. Nulla vel metus <span class="highlighted">scelerisque</span> ante sollicitudin commodo. Cras purus odio, vestibulum in vulputate at, tempus viverra turpis. Fusce condimentum nunc ac nisi vulputate fringilla. Donec lacinia congue felis in faucibus.</td>
&#9;&#9;</tr>
&#9;&#9;<tr>
&#9;&#9;&#9;<td><a href="#">IMAGRO</a></td>
&#9;&#9;&#9;<td><a href="#">Art&iacute;culo 2</a></td>
&#9;&#9;&#9;<td>Cras sit amet nibh libero, in gravida nulla. Nulla vel metus <span class="highlighted">scelerisque</span> ante sollicitudin commodo. Cras purus odio, vestibulum in vulputate at, tempus viverra turpis. Fusce condimentum nunc ac nisi vulputate fringilla. Donec lacinia congue felis in faucibus.</td>
&#9;&#9;</tr>
&#9;</tbody>
</table>

Open in new window


How can I accomplished this? Thanks.
ASKER CERTIFIED SOLUTION
Avatar of Ray Paseur
Ray Paseur
Flag of United States of America image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Avatar of ivanblue

ASKER

Hello, I'll see what I can do about the PHP version. With respect to the code this is the positive result example:

<?xml version="1.0" encoding="ISO-8859-1"?>
<impuesto>
	<id>irpc</id>
	<titulo>Renta del Pequeño Contribuyente</titulo>

	<contenido>
		<ley_articulo>
			<titulo>Ley 2421/04</titulo>
			
			<contenido>
				<p>Concordada con los Decretos Nº 8.593/06 , decreto 5610/10 y la Res. Nº 44/10 Art. con su anexo A y B</p>
				
				<p><strong>Definiciones y Conceptos</strong></p>
				
				<decreto>
					<titulo>Decreto Nº 8.593/06</titulo>
					<contenido>
						<p><strong>Artículo 1º - Conceptos</strong> Para la aplicación del Impuesto a la Renta del Pequeño Contribuyente se tendrán en cuenta los conceptos, 	definiciones y aclaraciones indicadas en este artículo:</p>

						<p><strong>a) Administración o Administración Tributaria:</strong> La Subsecretaría de Estado de Tributación del Ministerio de Hacienda, creada por Ley Nº 109/91 y sus modificaciones.</p>

						<p><strong>b) Cese o clausura de actividades o cierre definitivo de negocios:</strong> Proceso formal mediante el cual concluyen definitivamente las actividades económicas de un Contribuyente afectadas al presente Impuesto. Este concepto no incluye a la "clausura" como sanción, establecida por el Artículo 174 de la ley; tampoco incluye la suspensión temporal de actividades del negocio, entendiéndose temporal hasta que se presente a la Administración Tributaria la Declaración Jurada de Cierre a que se refiere el Artículo 14 "Cese o Clausura de Actividades" de este Decreto.</p>
					</contenido>
				</decreto>
			
				<decreto>
					<titulo>Decreto Nº 5.697/10</titulo>
					<contenido>
						<p>Modificase el literal c) del Artículo 1º del Decreto Nº 8593/2006, el cual queda redactado de la siguiente manera:</p>

						<p><strong>c) Comprobante de Venta:</strong> Documento autorizado por la Administración Tributaria  para respaldar actos de compra, venta, contrataciones y prestaciones de servicios. Su timbrado, uso y documentos complementarios se rigen por el Decreto Nº 6539/2005 y sus normas modificatorias y complementarias".</p>

						<p><strong>d) Empresa Unipersonal:</strong> Toda unidad productiva perteneciente a una persona física, en la que se utilice en forma conjunta el capital y el trabajo, propios o ajenos, en cualquier proporción, con el objeto de obtener un resultado económico, con excepción de los servicios de carácter personal.</p>

						<p>A los fines del Impuesto, las empresas individuales de responsabilidad limitada, los condominios de personas físicas y las sucesiones indivisas son consideradas empresas unipersonales.</p>

						<p><strong>e) Impuesto o IRPC:</strong> Impuesto a la Renta del Pequeño Contribuyente.</p>

						<p><strong>f) Ley:</strong> La Ley Nº 125/91, con sus modificaciones.</p>

						<p><strong>g) Servicio de carácter personal:</strong> Aquel para cuya realización es preponderante la utilización del factor trabajo.</p>

						<p><strong>h) Servicio no personal:</strong> Aquel para cuya realización es necesaria la utilización conjunta del capital y del trabajo en cualquier proporción o aquél en cuya realización se utiliza de forma exclusiva el factor capital.</p>
					</contenido>
				</decreto>
			
				<resolucion>
					<titulo>Resolución Nº 1560/06</titulo>
					<contenido>
						<p><strong>Artículo 1º - Conceptos</strong>  Para la aplicación de la presente Resolución se tendrán en cuenta los conceptos, definiciones y aclaraciones indicadas en este artículo:</p>

						<p><strong>a) Administración o Administración Tributaria:</strong> La Subsecretaria de Estado de Tributación del Ministerio de Hacienda, creada por Ley Nº 109/91 y sus modificaciones.</p>
						<p><strong>b) Impuesto o IRPC:</strong> Impuesto a la Renta del Pequeño Contribuyente.</p>
						<p><strong>c) Ley:</strong> La Ley Nº 125/91, con sus modificaciones. </p>
						<p><strong>d) Decreto:</strong> El Decreto Nº 8593 de fecha 11 de diciembre de 2006.</p>
						<p><strong>e) IRACIS:</strong> Impuesto a la Renta Comercial, Industrial o de Servicios.</p>
						<p><strong>f) IVA:</strong> Impuesto al Valor Agregado</p>
					</contenido>
				</resolucion>

				<resolucion>
					<titulo>Resolución Nº 44/10Art.  1º.-</titulo>
					<contenido>
						<p>Modifícase el literal g) del Artículo 1º de la Resolución Nº 1560/06, que quedará redactado del siguiente modo:</p>

						<p><strong>g) Comprobantes:</strong> Las facturas, Boletas de Ventas, Tickets, Autofacturas y demás documentos previstos en el Decreto N° 6539/05 y sus normas modificatorias y  complementarias.".</p>
					</contenido>
				</resolucion>
				
			</contenido>
		</ley_articulo>		
		
		<ley_articulo>
			<titulo>Artículo 42 - Primer Párrafo</titulo>
			<contenido>
				<p><strong>Hecho Generador:</strong> El Impuesto a la Renta del Pequeño Contribuyente Gravará los ingresos provenientes de la realización de actividades comerciales, industriales o de servicio que no sean de carácter personal.</p>

				<decreto>
					<titulo>Decreto Nº 8.593/06</titulo>
					<contenido>
						<p>Artículo 2º - Objeto: El Impuesto grava los ingresos de fuente paraguaya provenientes de la realización de actividades comerciales, industriales o de servicios que no sean de carácter personal, obtenidos por los sujetos pasivos definidos en el Artículo 3º del presente Reglamento.</p>
					</contenido>
				</decreto>
			</contenido>
		</ley_articulo>
	</contenido>
</impuesto>

Open in new window


The result searching for the word "impuesto" should be:

<table class="table table-hover">
	<thead>
		<tr>
			<th colspan="3">Resultados de la b&uacute;squeda</th>
		</tr>
	</thead>
	<tbody>
		<tr>
			<td width="100"><a href="#">IRCP</a></td>
			<td width="100"><a href="#">Ley 2421/04</a></td>
			<td>
				<a href="#">Decreto Nº 8.593/06</a>
				<p><strong>Artículo 1º - Conceptos</strong> Para la aplicación del Impuesto a la Renta del Pequeño Contribuyente se tendrán en cuenta los conceptos, 	definiciones y aclaraciones indicadas en este artículo:</p>
			</td>
		</tr>
		<tr>
			<td><a href="#">irpc</a></td>
			<td><a href="#">Ley 2421/04</a></td>
			<td>
				<a href="#">Decreto Nº 8.593/06</a>
				<p><strong>b) Cese o clausura de actividades o cierre definitivo de negocios:</strong> Proceso formal mediante el cual concluyen definitivamente las actividades económicas de un Contribuyente afectadas al presente Impuesto. Este concepto no incluye a la "clausura" como sanción, establecida por el Artículo 174 de la ley; tampoco incluye la suspensión temporal de actividades del negocio, entendiéndose temporal hasta que se presente a la Administración Tributaria la Declaración Jurada de Cierre a que se refiere el Artículo 14 "Cese o Clausura de Actividades" de este Decreto.</p>
			</td>
		</tr>
		<tr>
			<td><a href="#">irpc</a></td>
			<td><a href="#">Artículo 42 - Primer Párrafo</a></td>
			<td>
				<p><strong>Hecho Generador:</strong> El Impuesto a la Renta del Pequeño Contribuyente Gravará los ingresos provenientes de la realización de actividades comerciales, industriales o de servicio que no sean de carácter personal.</p>
			</td>
		</tr>
	</tbody>
</table>

Open in new window


I read this could be achievable using XPath instead of XSLT.
Thanks.
if all you're doind us parsing the xml document, then you dont need xslt or xpath.

php has a funtion 'simpleXMLelement' which would what you need. have a look here
http://www.sitepoint.com/parsing-xml-with-simplexml/
SOLUTION
Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial