<?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; w3c</title>
	<atom:link href="http://blog.calcifer.com.ar/tag/w3c/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>Cómo recuperar la web</title>
		<link>http://blog.calcifer.com.ar/2007/05/como-recuperar-la-web/</link>
		<comments>http://blog.calcifer.com.ar/2007/05/como-recuperar-la-web/#comments</comments>
		<pubDate>Thu, 10 May 2007 12:34:38 +0000</pubDate>
		<dc:creator>lvidarte</dc:creator>
				<category><![CDATA[w3c]]></category>

		<guid isPermaLink="false">http://blog.calcifer.com.ar/2007/05/10/como-recuperar-la-web/</guid>
		<description><![CDATA[Vía alzado.org
Por Manuel G. Noriega
Jeremy Keith es un tío listo. Gracias en parte a su dominio de la programación en Javascript, ha podido crear Adactio Elsewhere, dónde recopila fotos, enlaces y eventos en su propio nudo central de información. La tarea de Jeremy se ha visto enormemente facilitada por cosas como la proliferación de las [...]]]></description>
			<content:encoded><![CDATA[<div class="from">Vía <a href="http://www.alzado.org/articulo.php?id_art=440" class="linkexternal">alzado.org</a></div>
<p class="author">Por <a href="http://www.alzado.org/autor.php?id=5" class="linkexternal">Manuel G. Noriega</a></p>
<p><a href="http://adactio.com/" class="linkexternal">Jeremy Keith</a> es un tío listo. Gracias en parte a su dominio de la programación en Javascript, ha podido crear <a href="http://elsewhere.adactio.com/" class="linkexternal">Adactio Elsewhere</a>, dónde recopila fotos, enlaces y eventos en su propio nudo central de información. La tarea de Jeremy se ha visto enormemente facilitada por cosas como la proliferación de las tecnologías de sindicación de contenidos y de APIs, un mecanismo fácil de recuperar información, en los distintos servicios web.</p>
<p>Con esfuerzos como este vamos llegando a lo que se llama la Web 2.0, un pasito más hacia las promesas de la web semántica. Antes la web estaba hecho de &#8220;sitios&#8221;, que &#8220;visitabamos&#8221;, hacia donde &#8220;navegábamos&#8221;. Ahora, la web va cada vez más hacia una serie de servicios. Antes queriamos sitios y llegabamos a ellos a traves de los navegadores. Ahora queremos información y llegamos a ella a través de los sitios. El sitio ha pasado de ser el recurso a ser el interfaz.</p>
<p><span id="more-122"></span></p>
<p>Este ha sido un proceso azaroso y como todas las cosas interesantes tiene detrás una historia llena de desarrollos e imprevistos. Y cómo las noticias de última hora, está ahora mismo desarrollándose delante de nuestros ojos.</p>
<p>El fluido vital de la web son los lenguajes de marcado que se usan para crear las páginas que conforman los sitios. Probablemente hayas oido hablar de HTML. Es solo un conjunto de elementos (también llamados etiquetas) que crean la multitud de diferencias entre un documento web y un documento en texto plano. A utilizar determinados elementos HTML para acompañar o &#8220;vestir&#8221; determinado texto se lo conoce como &#8220;marcar&#8221; el texto. Un agente de usuario, un navegador, es un intérprete que traduce muy deprisa esas marcas a otro tipo de símbolos: una imagen, una negrita, una tabla, un determinado tono de voz&#8230;</p>
<p>Esta, en cierta manera engañosa, sencillez de uso de los lenguajes de marcado, junto la explosión demográfica de la web causó una espiral de problemas y una degeneración en la calidad del código utilizado. Visto en retrospectiva es un proceso natural, lo que no quiere decir óptimo: descubrimos un juguete nuevo y brillante y nos lanzamos sobre él con más ganas de toquetear que de leer el manual de instrucciones.</p>
<p>¿Quién se podía parar a meditar sobre las implicaciones a largo plazo cuándo acabas de descubrir que con un simple elemento &#8220;blink&#8221; puedes crear un aparente y vistoso efecto en pantalla? Mi texto parpadea, mi texto tiene efectos especiales, mi texto está vivo, mi texto se puede leer en Mozambique o en Hong Kong. Sírvete una copa y pásame una a mí. Ya.</p>
<p>Sin embargo, como todas las buenas borracheras, no tardaron en aparecer los síntomas de una devastadora resaca. Y como en todas las borracheras realmente memorables, descubrimos que habiamos cometido un tremendo error. Un error que roncaba sonoramente a nuestro lado.</p>
<p>Verás, para empezar el objetivo de todo este tinglado era la universalidad, la promesa de &#8216;escribe una vez / lée en cualquier parte&#8221;. Usa un determinado elemento (etiqueta) y estáte seguro de que lo que has querido decir será transportado más o menos indenme a través de todos los canales y dispositivos que acepten HTML.</p>
<p>Ese era el Sueño. Entonces llegaron las tentaciones fáciles. Los principales navegadores empezaron a desarrollar sus propias innovaciones, sus propios especiales sabores, que ofrecían satisfacción inmmediata a cambio de una pequeña traición al Sueño: las innovaciones eran propias de cada navegador, no parte del estándard HTML, así que sólo funcionarían en ese parque de navegadores. Mucha gente, la inmensa mayoría aceptó el trato. Y surgieron más elementos exclusivos de un navegador, &#8220;elementos propietarios&#8221;, que eran utilizados como arma competitiva por los navegadores para conseguir más cuota de mercado. Las apuestas subían. Netscape veía el &#8220;marquee&#8221; (etiqueta que permite un texto deslizante o marquesina) de Microsoft y subía con un &#8220;blink&#8221; (texto que parpadeaba). Todos ganábamos, todos perdíamos aunque no nos dabamos cuenta, claro. Estábamos como cubas.</p>
<p>Las consecuencias de estas famosas (infames) guerras de navegadores, este maremagnum de etiquetas propietarias fueron las conocidas webs optimizadas para una navegador concreto, especímenes que proliferaron y durante un tiempo parecieron hacer inevitable la balcanización de la web, fragméntandola en feudos aislados y esclavos de un determinado navegador.</p>
<p>En cierto momento se llegó a un extremo que ponía en peligro no solo la evolución, sino la misma existencia de la WWW como plataforma con algún viso de universalidad y legitimidad.</p>
<p>Afortunadamente ahora nos encontramos en el medio de una estapa de renovación, lenta y dificil pero segura y de avance constante. Es el enfoque basado en los estándares web, que se concreta en la normalización de páginas y herramientas de desarrollo en torno a las recomendaciones del W3C, que se encarga de elaborar, depurar y publicar las &#8220;biblias&#8221; oficiales de la miriada de tecnologías disponibles.</p>
<p>Esta normalización o compromiso de desarrollo se manifiesta en dos niveles: la validación automática, que asegura el cumplimiento de la &#8220;letra de la ley&#8221; en cuanto al uso ajustado a sintaxis de los elementos bendecidos por el W3C y el marcado semántico, que busca las soluciones de marcado que resuelvan de la forma más fiel, eficiente y elegante la tarea de expresar mediante elementos HTML los distintos significados y estructuras implícitas en los textos del lenguaje natural.</p>
<p>Es decir, la validación de nuestros documentos nos asegura que los elementos usados pertenecen a las recomendaciones W3C y su sintaxis es la adecuada.</p>
<p>El marcado semántico trata el mucho más elusivo problema de cuándo, dónde y porqué utilizar o dejar de utilizar cada elemento.</p>
<h3>Marcado semántico y microformatos</h3>
<p>Las discusiones y las investigaciones sobre marcado semántico se prodigan en multitud de blogs y foros, bajo muchas formas y en muchos idiomas, pero de la observación de estas conversaciones se observa una pauta constante de progresivo descubrimiento de soluciones óptimas y de consenso a determinados problemas con los cuales se enfrenta un desarrollador web.</p>
<p>¿Cómo marcar un menú de navegación? ¿Una fecha? ¿Qué elementos HTML debo usar para estructurar un fragmento de poesía? Las respuestas y cavilaciones sobre este tipo de sutilezas han cristalizado en la aparición de microformatos, descripciones formalizadas de las mejores prácticas para un problema de marcado determinado.</p>
<p>Son &#8220;formatos&#8221; porque se publican con afán de estandarización, de aceptación y de establecerse como solución comunmente aceptada. Son &#8220;micro&#8221; tanto por la poca documentación necesaria para establecerlos y definirlos con precisión, como por aplicarse a problemas de muy poca extensión. Pretenden explicar exhaustivamente una pregunta concreta, no dar un juego completo de herramientas al desarrollador.</p>
<p>Son &#8220;micro&#8221; también porque siempre son fragementos de código HTML/XHTML, con lo cual se convierten en pequeñas piezas reutilizables y apropiadas para su engarce en páginas web completas, válidas y semánticas.</p>
<p>La utilidad puede ser doble: a un nivel &#8220;egoista&#8221;, considerando solo una página o un sitio, aseguran al desarrollador el estar adoptando la mejor práctica disponible con las herramientas de su profesión y el poder adoptar de forma total y completa el desarrollo según estándares con todos los beneficios ya de sobra conocidos.</p>
<p>Sin embargo las cosas realmente interesante aparecen cuando consideramos &#8220;a vista de pájaro&#8221; las implicaciones de un ecosistema de páginas con fragmentos empotrados de código &#8220;microformateado&#8221;. Si 100, 1.000 o 1.000.000 de páginas ofrecen la posibilidad de ser recuperadas y procesadas con resultados predecibles, podemos empezar a imaginar servicios sin barreras de entrada que almacenen y compartan información de distintas páginas. &#8220;Agentes&#8221; que analizen de forma eficaz la información para extraer significados.</p>
<p>Parece extraño, pero pasa todos los días millones de veces y se puede ver un ejemplo en los registros de cualquier servidor web: estos agentes pueden ser simplemente los bots de búsqueda. Está al alcance de cualquiera con ciertas nociones de programación desarrollar su propio robot que recorra páginas y analizando la información insertada en su código HTML. Y si sabe qué buscar, qué microformato contiene la información que necesita, será una tarea casi trivial extraerla y recopilarla.</p>
<p>hReview es un microformato para codificar las opiniones un determinado recurso o producto tan frecuente en cualquier tienda online. Puedes usarlo en tu próximo desarrollo de un sitio así. Basándonos en la predictibilidad que dá la convención, el formato, no es dificil desarrollar un servicio que recopile todas las críticas sobre algo concreto disponible en tiendas, foros, blogs. Alguien puede echarle encima un motor de búsqueda. Ahora tienes un buscador inteligente que comprende que busca opiniones y sabe que lo que se expresa en hReview, quiere decir algo sobre algo.</p>
<p>Esto puede resultar familiar a muchos porque es una de las promesas de la Web Semántica. Vemos que el proceso evolutivo que agrupa estándares, marcado semántico y microformatos está desembocando por tanto en la realización de alguno de los objetivos a largo plazo y más primordiales para los teóricos de la red, aunque se llega a estos objetivos desde un enfoque de &#8220;abajo-arriba&#8221;, que prima los intereses prácticos y la extensión por evolución de las tecnologías existentes, en vez del enfoque de &#8220;arriba-abajo&#8221; que da más importancia a la introducción revolucionaria de nuevas tecnologías.</p>
<p>Esto son en definitiva, los microformatos, la destilación del saber hacer cotidiano de miles de &#8220;tejedores de la web&#8221;, documentada y formalizada hasta cierto punto. Cualquiera puede proponer un microformato y someterlo a la crítica de la comunidad relevante y al examen definitivo de la utilidad práctica en determinados escenarios. Los mejores sobrevivirán.</p>
<p>Sobre el texto plano extendemos la fina tela de los lenguajes de marcado. Sobre estos aparecen, como copos de nieve, las estructuras repetitivas del marcado semántico y de forma natural, casi por deducción aparecen los microformatos.</p>
<p>Y al lado de estos, otros órganos que crecen imparablemente: los feeds, las APIs. Las membranas que apresan los datos dentro de los sitios se vuelven cada vez más porosas y aparecen cilios y mecanismos de comunicación entre sitios, entre servicios, entre software.</p>
<p>Fluyen nuestras fotos, nuestros posts, nuestros libros, nuestros enlaces, nuestros objetivos. En el pasado están las webs pre-estándares y las guerras de navegadores; en el presente está el camino a la web 2.0 y los intentos fallidos, las pequeñas miserias. ¿Y el futuro? El futuro ya está aquí, sólo que no está distribuido uniformemente.</p>
<p>Muchas gracias a Eduardo Manchón por su infinita paciencia conmigo mientras esperaba este artículo y sus sugerencias para que evitar que se convirtiera en un completo desastre.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.calcifer.com.ar/2007/05/como-recuperar-la-web/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<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>16 años del nacimiento de WorldWideWeb</title>
		<link>http://blog.calcifer.com.ar/2007/02/16-anos-del-nacimiento-de-la-world-wide-web/</link>
		<comments>http://blog.calcifer.com.ar/2007/02/16-anos-del-nacimiento-de-la-world-wide-web/#comments</comments>
		<pubDate>Tue, 27 Feb 2007 00:06:21 +0000</pubDate>
		<dc:creator>lvidarte</dc:creator>
				<category><![CDATA[None]]></category>
		<category><![CDATA[w3c]]></category>
		<category><![CDATA[xhtml]]></category>

		<guid isPermaLink="false">http://blog.calcifer.com.ar/2007/02/26/16-anos-del-nacimiento-de-la-world-wide-web/</guid>
		<description><![CDATA[Vía Barrapunto
El 26 de Febrero de 1991, Tim Berners Lee presentaba WorldWideWeb (posteriormente renombrado a Nexus), un programa para la estación de trabajo Next que implementaba el primer navegador web del mundo.
Imagen tomada de Wikipedia
Durante los años 80, mientras trabajaba como físico en el CERN, Tim Berners Lee concibió un sistema de intercambio de información [...]]]></description>
			<content:encoded><![CDATA[<div class="ref">Vía <a href="http://barrapunto.com/article.pl?sid=07/02/26/1630215" title="Tal día como hoy: El nacimiento de la Web" class="linkexternal">Barrapunto</a></div>
<p>El 26 de Febrero de 1991, <a title="Tim Berners Lee" class="linkexternal" href="http://www.w3.org/People/Berners-Lee/">Tim Berners Lee</a> presentaba <a title="WorldWideWeb" class="linkwikipedia" href="http://en.wikipedia.org/wiki/WorldWideWeb">WorldWideWeb</a> (posteriormente renombrado a Nexus), un programa para la estación de trabajo <a class="linkexternal" title="NextStep" href="http://es.wikipedia.org/wiki/NeXTSTEP">Next</a> que implementaba el primer navegador web del mundo.</p>
<p class="center"><a href="/uploads/2007/02/WorldWideWeb_screenshot.png" alt="" title="WorldWideWeb"><img src="/uploads/2007/02/WorldWideWeb.png" alt="" /></a><br/><a href="http://en.wikipedia.org/wiki/WorldWideWeb" title=""  class="linkwikipedia">Imagen tomada de Wikipedia</a></p>
<p>Durante los años 80, mientras trabajaba como físico en el <a class="linkexternal" title="CERN" href="http://www.cern.ch/">CERN</a>, Tim Berners Lee concibió un sistema de intercambio de información científica construido sobre el concepto de hiperenlace; es decir,&nbsp; un sistema en el que cada documento incluyera referencias (enlaces) a otros. Su idea se materializó bajo dos componentes, por un lado estaba <a  class="linkwikipedia" title="HTTP" href="http://es.wikipedia.org/wiki/HTTP">HTTP</a>, que era el protocolo utilizado por el programa de navegación para pedir los documentos al servidor, y por otro lado estaba <a class="linkwikipedia" title="HTML" href="http://es.wikipedia.org/wiki/HTML">HTML</a>, que era el formato de los documentos que mostraba el programa de navegación.</p>
<p class="center"><img src="/uploads/2007/02/Berners-Lee.jpg" alt="" /><br />Tim Berners-Lee</p>
<p>Las ideas de Berners se materializaron en dos programas, por un lado el mencionado navegador Nexus, y por otro el <a class="linkexternal" title="CERN httpd" href="http://www.w3.org/Daemon/">CERN httpd</a>, el servidor de páginas web. Ninguno de estos programas tuvo una vida muy larga; Nexus solo funcionaba en Next, así que no tardó en ser reemplazado por <a  class="linkwikipedia" title="Mosaic" href="http://es.wikipedia.org/wiki/Mosaic">Mosaic</a>, un navegador web creado por <a  class="linkwikipedia" title="Marc Andreessen" href="http://es.wikipedia.org/wiki/Marc_Andreessen">Marc Andreessen</a> que funcionaba tanto bajo sistemas Unix como Windows. Respecto a CERN Httpd, no tardaría en ser reemplazado por <a class="linkexternal" title="Apache" href="http://httpd.apache.org/">Apache</a>, un proyecto que nació como un fork del propio CERN Httpd para acabar convirtiéndose en el servidor web mas popular.</p>
<p>Actualmente, Tim Berners Lee es presidente del <a class="linkexternal" title="World wide web consortium" href="http://www.w3.org/">World Wide Web Consortium</a>, un organismo creado para dirigir el desarrollo de las tecnologías relacionadas con la web.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.calcifer.com.ar/2007/02/16-anos-del-nacimiento-de-la-world-wide-web/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>

