<rss version="2.0" xmlns:a10="http://www.w3.org/2005/Atom"><channel><title>Dicas Técnicas BufaloInfo</title><link>http://www.bufaloinfo.com.br/</link><description>Dicas Técnicas Produzidas pela Búfalo Informática</description><item><link>http://www.bufaloinfo.com.br/dicas.asp?cod=334</link><title>XML : Utilizando CDATA</title><description>&lt;br&gt;Existem alguns caracteres reservados que n&amp;#227;o s&amp;#227;o aceitos no XML nem pela utiliza&amp;#231;&amp;#227;o do encoding. O &amp;amp; &amp;#233; um exemplo de um desses caracteres.&lt;br&gt;&lt;br&gt;Para resolver esse problema podemos utilizar uma marca&amp;#231;&amp;#227;o chamada CDATA no XML, indicando a presen&amp;#231;a dos caracteres adicionais. Veja :&lt;br&gt;&lt;br&gt;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;ISO-8859-1&amp;quot; ?&amp;gt;&lt;br&gt;&amp;lt;xml&amp;gt;&lt;br&gt;&amp;lt;teste&amp;gt;&amp;lt;![CDATA[&lt;br&gt;&lt;br&gt;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp; &lt;br&gt;]]&amp;gt;&lt;br&gt;&amp;lt;/teste&amp;gt;&lt;br&gt;&amp;lt;/xml&amp;gt;&lt;br&gt;&lt;br&gt;O CDATA funciona apenas como um indicador da exist&amp;#234;ncia de caracteres especiais, o acesso via domDocument n&amp;#227;o muda, veja :&lt;br&gt;&lt;br&gt;    x.async = False&lt;br&gt;    x.Load &amp;quot;D:\WINNT\Profiles\Administrator\Desktop\teste.xml&amp;quot; &lt;br&gt;    Set root = x.documentElement&lt;br&gt;   &lt;br&gt;    MsgBox root.childNodes(0).childNodes(0).nodevalue&lt;br&gt;    msgbox root.childnodes(0).text&lt;br&gt;&lt;br&gt;</description></item><item><link>http://www.bufaloinfo.com.br/dicas.asp?cod=331</link><title>XML : O SAX no parser de XML</title><description>&lt;br&gt;A Microsoft incluir na vers&amp;#227;o 4 do parser de XML um objeto SAX (Simple API for XML) como uma op&amp;#231;&amp;#227;o para a utiliza&amp;#231;&amp;#227;o do DOMDOCUMENT.&lt;br&gt;&lt;br&gt;O SAX &amp;#233; um objeto muito mais leve que o DomDocument, o que aumenta a escalabilidade das aplica&amp;#231;&amp;#245;es que o utilizam. Por&amp;#233;m n&amp;#227;o possui todos os recursos de navega&amp;#231;&amp;#227;o que o DomDocument e n&amp;#227;o permite uma livre navega&amp;#231;&amp;#227;o no documento XML.&lt;br&gt;&lt;br&gt;Para muitos casos, por&amp;#233;m, o uso do SAX garantir&amp;#225; uma maior escalabilidade para a sua aplica&amp;#231;&amp;#227;o.&lt;br&gt;&lt;br&gt;Veja mais detalhes sobre quando utilizar SAX e quando utilizar o DOMDocument em http://msdn.microsoft.com/library/default.asp?url=/library/en-us/xmlsdk/htm/sax_concepts_3mzx.asp</description></item><item><link>http://www.bufaloinfo.com.br/dicas.asp?cod=264</link><title>XML : Exibindo apenas o valor texto no XSL</title><description>&lt;br&gt;Veja o seguinte XML :&lt;br&gt;&lt;br&gt;&amp;lt;funcionario&amp;gt;&lt;br&gt;   &amp;lt;nome&amp;gt;Joao&amp;lt;/nome&amp;gt;&lt;br&gt;   &amp;lt;departamento&amp;gt;&lt;br&gt;       Informatica&lt;br&gt;        &amp;lt;cargo&amp;gt;Analista&amp;lt;/cargo&amp;gt;&lt;br&gt;   &amp;lt;/departamento&amp;gt;&lt;br&gt;&amp;lt;/funcionario&amp;gt;&lt;br&gt;&lt;br&gt;O elemento departamento possui tanto um texto como um sub-n&amp;#243;. Se utilizarmos value-of da seguinte forma :&lt;br&gt;&lt;br&gt;&amp;lt;xsl:template match=&amp;quot;departamento&amp;quot;&amp;gt;&lt;br&gt;&amp;lt;xsl:value-of select=&amp;quot;.&amp;quot; /&amp;gt;&lt;br&gt;&amp;lt;/xsl:template&amp;gt;&lt;br&gt;&lt;br&gt;Estaremos exibindo &amp;quot;Inform&amp;#225;tica Analista&amp;quot; . Sim, o &amp;quot;.&amp;quot; aplicado no Value-Of n&amp;#227;o pega apenas o conteudo do n&amp;#243;, mas tamb&amp;#233;m tudo que estiver abaixo dele. Ent&amp;#227;o para nos referir apenas ao texto do n&amp;#243; sem incluir os n&amp;#243;s filho precisaremos utilizar a fun&amp;#231;&amp;#227;o text(). Veja :&lt;br&gt;&lt;br&gt;&amp;lt;xsl:template match=&amp;quot;departamento&amp;quot;&amp;gt;&lt;br&gt;&amp;lt;xsl:value-of select=&amp;quot;text()&amp;quot; /&amp;gt;&lt;br&gt;&amp;lt;/xsl:template&amp;gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;</description></item><item><link>http://www.bufaloinfo.com.br/dicas.asp?cod=263</link><title>XML : Sutis Diferenças entre a filtragem no match e a filtragem no select</title><description>&lt;br&gt;Veja o exemplo do trecho de xsl abaixo :&lt;br&gt;&lt;br&gt;&amp;lt;xsl:template match=&amp;quot;//raiz&amp;quot;&amp;gt;&lt;br&gt;   &amp;lt;xsl:apply-templates select=&amp;quot;nome&amp;quot; /&amp;gt;&lt;br&gt;&amp;lt;/xsl:template&amp;gt;&lt;br&gt;&lt;br&gt;&amp;lt;xsl:template match=&amp;quot;nome&amp;quot;&amp;gt;&lt;br&gt;    &amp;lt;xsl:value-of select=&amp;quot;.&amp;quot; /&amp;gt;&lt;br&gt;&amp;lt;/xsl&amp;gt;&lt;br&gt;&lt;br&gt;Digamos que desejamos filtrar o nome por &amp;quot;Jos&amp;#233;&amp;quot;. O filtro pode entrar em 2 lugares : No match do template para &amp;quot;nome&amp;quot; ou no apply-templates. Existe uma sutil diferen&amp;#231;a entre os dois, veja :&lt;br&gt;&lt;br&gt;O filtro criado no match indica que aquele template apenas servir&amp;#225; para os &amp;quot;Jos&amp;#233;&amp;quot;.  Como o apply-templates n&amp;#227;o tem filtro no select isso significa que quando o nome for &amp;quot;Jos&amp;#233;&amp;quot; ser&amp;#225; aplicado o template mais espec&amp;#237;fico que existe para o &amp;quot;Jos&amp;#233;&amp;quot;, mas quando n&amp;#227;o for o nome ser&amp;#225; exibido, mas com o template default ou um outro template que porventura tenhamos feito para o nome. Isso nos possibilitaria, por exemplo, exibir todos os nomes, mas deixar os &amp;quot;Jos&amp;#233;&amp;quot; em vermelho.&lt;br&gt;&lt;br&gt;Por&amp;#233;m se o filtro for no select do apply-templates significa que apenas os &amp;quot;Jos&amp;#233;&amp;quot; ser&amp;#227;o exibidos, sendo exibidos com o template para o elemento &amp;quot;nome&amp;quot;.&lt;br&gt;&lt;br&gt;</description></item><item><link>http://www.bufaloinfo.com.br/dicas.asp?cod=262</link><title>XML : Acentuação em XML</title><description>&lt;br&gt;O formato de caracteres padr&amp;#227;o do XML n&amp;#227;o permite a acentua&amp;#231;&amp;#227;o que tanto usamos em nossa lingua. Para corrigirmos isso temos que, no cabe&amp;#231;alho do XML definir o formato de caracteres que usaremos. Veja :&lt;br&gt;&lt;br&gt;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;ISO-8859-1&amp;quot; ?&amp;gt;&lt;br&gt;&lt;br&gt;Com esta defini&amp;#231;&amp;#227;o o XML passa a aceitar caracteres acentuados em seu conte&amp;#250;do.&lt;br&gt;&lt;br&gt;</description></item><item><link>http://www.bufaloinfo.com.br/dicas.asp?cod=256</link><title>XML : Identificando o ROOT</title><description>&lt;br&gt;Existem duas formas de fazer o match do root no XSL : Utilizando a / ou utilizando //nomedoroot&lt;br&gt;&lt;br&gt;Existe uma diferen&amp;#231;a sutil entre estas duas formas que s&amp;#243; &amp;#233; identificada quando fazemos o match dos n&amp;#243;s filhos do root : Existe um n&amp;#237;vel no documento que fica acima do root  e quando usamos / estamos na verdade fazendo o match a este n&amp;#237;vel e n&amp;#227;o realmente ao root.&lt;br&gt;&lt;br&gt;Desta forma, se abaixo do meu root eu tenho um elemento chamado &amp;quot;filhoroot&amp;quot;, se utilizo a / para fazer o match do root se tentar identificar o elemento filho apenas como &amp;quot;filhoroot&amp;quot; o match n&amp;#227;o funcionar&amp;#225;, pois o filhoroot n&amp;#227;o &amp;#233; filho da &amp;quot;/&amp;quot; !&lt;br&gt;&lt;br&gt;Ent&amp;#227;o se utilizamos a / para fazer o match do root somos obrigados a utilizar //filhoroot ou nomeroot/filhoroot para fazer o match do n&amp;#243; abaixo do root. Por&amp;#233;m se utilizamos //nomeroot para fazer o match do root, o match foi feito diretamente ao root e se utilizarmos apenas &amp;quot;filhoroot&amp;quot; para fazer o match seguinte funcionar&amp;#225;, pois filhoroot &amp;#233; filho de nomeroot, para o qual foi feito o match.&lt;br&gt;&lt;br&gt;</description></item></channel></rss>