<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Calcifer &#187; xml</title>
	<atom:link href="http://blog.calcifer.com.ar/tag/xml/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.calcifer.com.ar</link>
	<description></description>
	<lastBuildDate>Sat, 02 Oct 2010 05:32:38 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Consultas XPath desde la línea de comandos</title>
		<link>http://blog.calcifer.com.ar/2007/03/xpath-desde-la-linea-de-comandos/</link>
		<comments>http://blog.calcifer.com.ar/2007/03/xpath-desde-la-linea-de-comandos/#comments</comments>
		<pubDate>Mon, 19 Mar 2007 16:36:42 +0000</pubDate>
		<dc:creator>lvidarte</dc:creator>
				<category><![CDATA[None]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[w3c]]></category>
		<category><![CDATA[xml]]></category>

		<guid isPermaLink="false">http://blog.calcifer.com.ar/2007/03/19/xpath-desde-la-linea-de-comandos/</guid>
		<description><![CDATA[Existe una aplicación llamada
xmlstarlet
que permite hacer consultas XPath a archivos XML.
Supongamos el siguiente archivo XML, al cual llamaremos libro.xml:
12345678910111213141516171819202122232425262728293031323334&#60;xml version=&#34;1.0&#34; encoding=&#34;UTF-8&#34;&#62;

&#60;libro&#62;

&#60;titulo&#62;Patas arriba&#60;titulo&#62;
&#60;autor&#62;Eduardo Galeano&#60;/autor&#62;

&#60;capitulo num=&#34;1&#34; titulo=&#34;La escuela del mundo al revés&#34;&#62;
&#160; &#160; &#60;seccion num=&#34;1&#34; titulo=&#34;Educando con el ejemplo&#34;&#62;
&#160; &#160; &#160; &#160; &#60;parrafo destacado=&#34;si&#34;&#62;La escuela del mundo al revés es la más democrática de las instituciones educativas.&#60;/parrafo&#62;

&#160; [...]]]></description>
			<content:encoded><![CDATA[<p>Existe una aplicación llamada</p>
<div class="codecolorer-container text " style="overflow:auto;white-space:nowrap;width:435px"><div class="text codecolorer" style="font-family:Monaco,Lucida Console,monospace">xmlstarlet</div></div>
<p>que permite hacer consultas <a href="http://www.w3.org/TR/xpath" class="linkexternal">XPath</a> a archivos XML.</p>
<p>Supongamos el siguiente archivo XML, al cual llamaremos libro.xml:</p>
<div class="codecolorer-container xml " style="overflow:auto;white-space:nowrap;width:435px;height:300px"><table cellspacing="0" cellpadding="0"><tbody><tr><td class="line-numbers"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />25<br />26<br />27<br />28<br />29<br />30<br />31<br />32<br />33<br />34<br /></div></td><td><div class="xml codecolorer" style="font-family:Monaco,Lucida Console,monospace"><span class="sc3"><span class="re1">&lt;xml</span> <span class="re0">version</span>=<span class="st0">&quot;1.0&quot;</span> <span class="re0">encoding</span>=<span class="st0">&quot;UTF-8&quot;</span><span class="re2">&gt;</span></span><br />
<br />
<span class="sc3"><span class="re1">&lt;libro<span class="re2">&gt;</span></span></span><br />
<br />
<span class="sc3"><span class="re1">&lt;titulo<span class="re2">&gt;</span></span></span>Patas arriba<span class="sc3"><span class="re1">&lt;titulo<span class="re2">&gt;</span></span></span><br />
<span class="sc3"><span class="re1">&lt;autor<span class="re2">&gt;</span></span></span>Eduardo Galeano<span class="sc3"><span class="re1">&lt;/autor<span class="re2">&gt;</span></span></span><br />
<br />
<span class="sc3"><span class="re1">&lt;capitulo</span> <span class="re0">num</span>=<span class="st0">&quot;1&quot;</span> <span class="re0">titulo</span>=<span class="st0">&quot;La escuela del mundo al revés&quot;</span><span class="re2">&gt;</span></span><br />
&nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;seccion</span> <span class="re0">num</span>=<span class="st0">&quot;1&quot;</span> <span class="re0">titulo</span>=<span class="st0">&quot;Educando con el ejemplo&quot;</span><span class="re2">&gt;</span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;parrafo</span> <span class="re0">destacado</span>=<span class="st0">&quot;si&quot;</span><span class="re2">&gt;</span></span>La escuela del mundo al revés es la más democrática de las instituciones educativas.<span class="sc3"><span class="re1">&lt;/parrafo<span class="re2">&gt;</span></span></span><br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;parrafo<span class="re2">&gt;</span></span></span>El mundo al revés premia al revés.<span class="sc3"><span class="re1">&lt;/parrafo<span class="re2">&gt;</span></span></span><br />
&nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;/seccion<span class="re2">&gt;</span></span></span><br />
<br />
&nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;seccion</span> <span class="re0">num</span>=<span class="st0">&quot;2&quot;</span> <span class="re0">titulo</span>=<span class="st0">&quot;Los alumnos&quot;</span><span class="re2">&gt;</span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;parrafo</span> <span class="re0">destacado</span>=<span class="st0">&quot;si&quot;</span><span class="re2">&gt;</span></span>Día tras día, se niega a los niños el derecho de ser niños.<span class="sc3"><span class="re1">&lt;/parrafo<span class="re2">&gt;</span></span></span><br />
&nbsp; &nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;parrafo<span class="re2">&gt;</span></span></span>En el océano del desamparo, se alzan las islas del privilegio.<span class="sc3"><span class="re1">&lt;/parrafo<span class="re2">&gt;</span></span></span><br />
&nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;/seccion<span class="re2">&gt;</span></span></span><br />
<span class="sc3"><span class="re1">&lt;/capitulo<span class="re2">&gt;</span></span></span><br />
<br />
<span class="sc3"><span class="re1">&lt;capitulo</span> <span class="re0">num</span>=<span class="st0">&quot;2&quot;</span> <span class="re0">titulo</span>=<span class="st0">&quot;Cátedras del miedo&quot;</span><span class="re2">&gt;</span></span><br />
&nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;seccion</span> <span class="re0">num</span>=<span class="st0">&quot;1&quot;</span> <span class="re0">titulo</span>=<span class="st0">&quot;La enseñanza del miedo&quot;</span><span class="re2">&gt;</span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;parrafo</span> <span class="re0">destacado</span>=<span class="st0">&quot;si&quot;</span><span class="re2">&gt;</span></span>En un mundo que prefiere la seguridad a la justicia, hay cada vez más gente que aplaude el sacrificio de la justicia en los altares de la seguridad.<span class="sc3"><span class="re1">&lt;/parrafo<span class="re2">&gt;</span></span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;parrafo<span class="re2">&gt;</span></span></span>A mediados de 1982, ocurrió en Río de Janeiro un hecho de rutina: la policía mató a un sospechoso de hurto.<span class="sc3"><span class="re1">&lt;/parrafo<span class="re2">&gt;</span></span></span><br />
&nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;/seccion<span class="re2">&gt;</span></span></span><br />
<br />
&nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;seccion</span> <span class="re0">num</span>=<span class="st0">&quot;2&quot;</span> <span class="re0">titulo</span>=<span class="st0">&quot;La industria del miedo&quot;</span><span class="re2">&gt;</span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;parrafo</span> <span class="re0">destacado</span>=<span class="st0">&quot;si&quot;</span><span class="re2">&gt;</span></span>El miedo es la materia prima de las prósperas industrias de la seguridad privada y del control social.<span class="sc3"><span class="re1">&lt;/parrafo<span class="re2">&gt;</span></span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;parrafo<span class="re2">&gt;</span></span></span>&quot;Nuestra mejor publicidad son los noticieros de la televisión&quot;, dice, y bien sabe lo que dice, uno de los especialistas en la venta de seguridad.<span class="sc3"><span class="re1">&lt;/parrafo<span class="re2">&gt;</span></span></span><br />
&nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;/seccion<span class="re2">&gt;</span></span></span><br />
<br />
<span class="sc3"><span class="re1">&lt;/capitulo<span class="re2">&gt;</span></span></span><br />
<br />
<span class="sc3"><span class="re1">&lt;/libro<span class="re2">&gt;</span></span></span></div></td></tr></tbody></table></div>
<h3>Consultas</h3>
<p>Obtener el título del libro:</p>
<div class="codecolorer-container bash " style="overflow:auto;white-space:nowrap;width:435px"><div class="bash codecolorer" style="font-family:Monaco,Lucida Console,monospace">xmlstarlet <span class="kw1">select</span> <span class="re5">-t</span> <span class="re5">-v</span> <span class="sy0">//</span>titulo libro.xml</div></div>
<p>Obtener el capítulo 1:</p>
<div class="codecolorer-container bash " style="overflow:auto;white-space:nowrap;width:435px"><div class="bash codecolorer" style="font-family:Monaco,Lucida Console,monospace">xmlstarlet <span class="kw1">select</span> <span class="re5">-t</span> <span class="re5">-v</span> <span class="st0">&quot;//capitulo[@num='1']&quot;</span> libro.xml</div></div>
<p>Obtener el capítulo 2:</p>
<div class="codecolorer-container bash " style="overflow:auto;white-space:nowrap;width:435px"><div class="bash codecolorer" style="font-family:Monaco,Lucida Console,monospace">xmlstarlet <span class="kw1">select</span> <span class="re5">-t</span> <span class="re5">-v</span> <span class="st0">&quot;//capitulo[2]&quot;</span> libro.xml</div></div>
<p>Obtener el capítulo 2 usando last():</p>
<div class="codecolorer-container bash " style="overflow:auto;white-space:nowrap;width:435px"><div class="bash codecolorer" style="font-family:Monaco,Lucida Console,monospace">xmlstarlet <span class="kw1">select</span> <span class="re5">-t</span> <span class="re5">-v</span> <span class="st0">&quot;//capitulo[last()]&quot;</span> libro.xml</div></div>
<p>Obtener la sección 1 del capítulo 2:</p>
<div class="codecolorer-container bash " style="overflow:auto;white-space:nowrap;width:435px"><div class="bash codecolorer" style="font-family:Monaco,Lucida Console,monospace">xmlstarlet <span class="kw1">select</span> <span class="re5">-t</span> <span class="re5">-v</span> <span class="st0">&quot;/libro/capitulo[@num='2']/seccion[@num='1']&quot;</span> libro.xml</div></div>
<p>Obtener los párrafos que contienen algún atributo:</p>
<div class="codecolorer-container bash " style="overflow:auto;white-space:nowrap;width:435px"><div class="bash codecolorer" style="font-family:Monaco,Lucida Console,monospace">xmlstarlet <span class="kw1">select</span> <span class="re5">-t</span> <span class="re5">-c</span> <span class="st_h">'//parrafo[@*]'</span> libro.xml</div></div>
<p>Obtener los párrafos no destacados del capítulo 1:</p>
<div class="codecolorer-container bash " style="overflow:auto;white-space:nowrap;width:435px"><div class="bash codecolorer" style="font-family:Monaco,Lucida Console,monospace">xmlstarlet <span class="kw1">select</span> <span class="re5">-t</span> <span class="re5">-c</span> <span class="st0">&quot;/libro/capitulo[@num='1']//parrafo[not(@destacado)]&quot;</span> libro.xml</div></div>
<h3>Parámetros</h3>
<div class="codecolorer-container bash " style="overflow:auto;white-space:nowrap;width:435px"><div class="bash codecolorer" style="font-family:Monaco,Lucida Console,monospace">Syntax <span class="kw1">for</span> templates: -t<span class="sy0">|</span>--template <span class="sy0">&lt;</span>options<span class="sy0">&gt;</span><br />
where <span class="sy0">&lt;</span>options<span class="sy0">&gt;</span><br />
&nbsp; <span class="re5">-c</span> or <span class="re5">--copy-of</span> <span class="sy0">&lt;</span>xpath<span class="sy0">&gt;</span> &nbsp; &nbsp; &nbsp; &nbsp; - print copy of XPATH expression<br />
&nbsp; <span class="re5">-v</span> or <span class="re5">--value-of</span> <span class="sy0">&lt;</span>xpath<span class="sy0">&gt;</span> &nbsp; &nbsp; &nbsp; &nbsp;- print value of XPATH expression<br />
&nbsp; <span class="re5">-o</span> or <span class="re5">--output</span> <span class="sy0">&lt;</span>string<span class="sy0">&gt;</span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;- output string literal<br />
&nbsp; <span class="re5">-n</span> or <span class="re5">--nl</span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; - print new line<br />
&nbsp; <span class="re5">-f</span> or <span class="re5">--inp-name</span> &nbsp; &nbsp; &nbsp; &nbsp; - print input <span class="kw2">file</span> name <span class="br0">&#40;</span>or URL<span class="br0">&#41;</span><br />
&nbsp; <span class="re5">-m</span> or <span class="re5">--match</span> <span class="sy0">&lt;</span>xpath<span class="sy0">&gt;</span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; - match XPATH expression<br />
&nbsp; <span class="re5">-i</span> or <span class="re5">--if</span> <span class="sy0">&lt;</span>test-xpath<span class="sy0">&gt;</span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;- check condition <span class="sy0">&lt;</span>xsl:<span class="kw1">if</span> <span class="re2"><span class="kw3">test</span></span>=<span class="st0">&quot;test-xpath&quot;</span><span class="sy0">&gt;</span><br />
&nbsp; <span class="re5">-e</span> or <span class="re5">--elem</span> <span class="sy0">&lt;</span>name<span class="sy0">&gt;</span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;- print out element <span class="sy0">&lt;</span>xsl:element <span class="re2">name</span>=<span class="st0">&quot;name&quot;</span><span class="sy0">&gt;</span><br />
&nbsp; <span class="re5">-a</span> or <span class="re5">--attr</span> <span class="sy0">&lt;</span>name<span class="sy0">&gt;</span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;- add attribute <span class="sy0">&lt;</span>xsl:attribute <span class="re2">name</span>=<span class="st0">&quot;name&quot;</span><span class="sy0">&gt;</span><br />
&nbsp; <span class="re5">-b</span> or <span class="re5">--break</span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;- <span class="kw3">break</span> nesting<span class="sy0">&lt;/</span>xsl:attribute<span class="sy0">&gt;&lt;/</span>name<span class="sy0">&gt;&lt;/</span>xsl:element<span class="sy0">&gt;&lt;/</span>name<span class="sy0">&gt;&lt;/</span>xsl:<span class="kw1">if</span><span class="sy0">&gt;&lt;/</span>test-xpath<span class="sy0">&gt;&lt;/</span>xpath<span class="sy0">&gt;&lt;/</span>string<span class="sy0">&gt;&lt;/</span>xpath<span class="sy0">&gt;&lt;/</span>xpath<span class="sy0">&gt;&lt;/</span>options<span class="sy0">&gt;&lt;/</span>options<span class="sy0">&gt;</span></div></div>
<p class="from">Sitio oficial: <a href="http://xmlstar.sourceforge.net/" class="linkexternal">XMLStarlet Command Line XML Toolkit</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.calcifer.com.ar/2007/03/xpath-desde-la-linea-de-comandos/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>37 pasos para un perfecto etiquetado HTML</title>
		<link>http://blog.calcifer.com.ar/2006/11/37-pasos-para-un-perfecto-etiquetado-html/</link>
		<comments>http://blog.calcifer.com.ar/2006/11/37-pasos-para-un-perfecto-etiquetado-html/#comments</comments>
		<pubDate>Tue, 07 Nov 2006 02:57:53 +0000</pubDate>
		<dc:creator>lvidarte</dc:creator>
				<category><![CDATA[None]]></category>
		<category><![CDATA[w3c]]></category>
		<category><![CDATA[xhtml]]></category>
		<category><![CDATA[xml]]></category>

		<guid isPermaLink="false">http://blog.calcifer.com.ar/2006/11/06/37-pasos-para-un-perfecto-etiquetado-html/</guid>
		<description><![CDATA[
El siguiente artículo continene un total de 37 puntos con respuestas frecuentes sobre HTML. En inglés. Estos son algunos de los puntos que trata el artículo:

Why do I need to write&#38;amp;instead of just&#038;?
Why are external CSS and JavaScript files a good idea?
What does &#8220;semantic&#8221; mean?
Should I replacebandiwithstrongandem?
Are tables deprecated?
What is the correct use of thedfnelement [...]]]></description>
			<content:encoded><![CDATA[<p><img src="/uploads/2006/11/david.jpg" alt="" class="noborder lzimg-right"/></p>
<p>El siguiente artículo continene un total de 37 puntos con respuestas frecuentes sobre HTML. En inglés. Estos son algunos de los puntos que trata el artículo:</p>
<ol>
<li value="16">Why do I need to write<code>&amp;amp;</code>instead of just<code>&#038;</code>?</li>
<li value="20">Why are external CSS and JavaScript files a good idea?</li>
<li value="22">What does &#8220;semantic&#8221; mean?</li>
<li value="23">Should I replace<code>b</code>and<code>i</code>with<code>strong</code>and<code>em</code>?</li>
<li value="26">Are tables deprecated?</li>
<li value="28">What is the correct use of the<code>dfn</code>element type?</li>
<li value="33">Must I have an<code>alt</code>attribute for every image?</li>
</ol>
<blockquote><p>&#8220;HTML es la base de la Web y tanto desarrolladores como diseñadores necesitan comprenderlo&#8221;</p></blockquote>
<p><a href="http://www.sitepoint.com/article/html-37-steps-perfect-markup" title="Link externo a la nota en inglés" class="linkexternal">37 Steps to Perfect Markup</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.calcifer.com.ar/2006/11/37-pasos-para-un-perfecto-etiquetado-html/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

