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.
LVL 1
ivanblueAsked:
Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

Ray PaseurCommented:
Couple of issues here. First, you need to upgrade your version of PHP.  PHP 5.2 is not supported any more, not even for security fixes.  Second you might want to have some test data that contained positive results.  The sample search string is not in the XML document posted here.

<?php // RAY_temp_ivanblue.php
error_reporting(E_ALL);
echo '<pre>';

// SEE http://www.experts-exchange.com/Web_Development/Web_Languages-Standards/PHP/Q_28246460.html


$word = "scelerisque";

$xml = <<<EOD
<?xml version="1.0" encoding="ISO-8859-1"?>
<impuesto>
	<titulo>Renta del Pequeño Contribuyente</titulo>
	<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>
</impuesto>
EOD;

// MAKE AN OBJECT
$obj = SimpleXML_Load_String($xml);
var_dump($obj);

// SEE IF THE WORD IS ANYWHERE? (NOPE)
$poz = strpos($xml, $word);
var_dump($poz);

Open in new window

0

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
ivanblueAuthor Commented:
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.
0
Kyle HamiltonData ScientistCommented:
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/
0
Ray PaseurCommented:
Hmm... Don't know how I got disconnected from this question, but I just got a neglected question alert about it!  Here are some notes.

The XML document says it is in ISO-8859-1, but I got invalid characters when I tried to display the object made from the XML, and I had to use UTF-8 to get it to look right.  This article explains a bit more about character-set collisions, and how to avoid them
http://www.experts-exchange.com/Web_Development/Web_Languages-Standards/PHP/A_11880-Unicode-PHP-and-Character-Collisions.html

This is not a complete solution; you may need some other inner iterators to find all of the parts of the object.  But it will show the way forward.
http://www.laprbass.com/RAY_temp_ivanblue.php

<?php // RAY_temp_ivanblue.php
error_reporting(E_ALL);

$xml = <<<EOD
<?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>
EOD;

// MAKE AN OBJECT FROM THE XML
$obj = SimpleXML_Load_String($xml);

// ENSURE THAT THE BROWSER HAS THE RIGHT CHARACTER ENCODING
echo '<meta charset="utf-8" />';

// MAKE THE OUTPUT EASY TO READ
echo '<pre>';

// ACTIVATE THIS TO SHOW THE OBJECT
// var_dump($obj);

// SHOW HOW TO USE ITERATORS ON THE OBJECT
foreach ($obj->contenido->ley_articulo as $x)
{
    // CAPTURE A VARIABLE CAST TO STRING TYPE
    $t = (string)$x->titulo;

    // ITERATE OVER THE INNER CONTENT OF THE OBJECT
    foreach ($x->contenido->decreto as $cd)
    {
        // ITERATE OVER THE PARAGRAPHS
        foreach ($cd->contenido->p as $p)
        {
            // LOOK INTO THE STRINGS FOR SIGNAL STRING "IMPUESTO"
            $o = NULL;
            $p = (string)$p;
            if (stripos($p, 'IMPUESTO') !== FALSE)
            {
                $o .= PHP_EOL . $p;
            }
        }
        // IF SIGNAL STRING IS FOUND
        if ($o)
        {
            echo PHP_EOL . "<b>$t</b>" . $o;
        }
    }
}

Open in new window

HTH, ~Ray
0
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
XML

From novice to tech pro — start learning today.