Inquiridor
Como fazer um select distinct no XML

Pergunta
-
Olá pessoal, estou com problemas com a minha programação ASP. Preciso fazer um select distinct nos atributos
Possuo um arquivo XML na estrutura abaixo:
<caes>
<news ano="2008" mes="6" />
<news ano="2008" mes="6" />
<news ano="2008" mes="5" />
<news ano="2008" mes="5" />
<news ano="2008" mes="4" />
<news ano="2007" mes="6" />
<news ano="2007" mes="6" />
<news ano="2007" mes="5" />
<news ano="2007" mes="5" />
<news ano="2007" mes="4" />
(...)
<news ano="2003" mes="2" />
<news ano="2003" mes="2" />
<news ano="2003" mes="1" />
</caes>Segue abaixo o código utilizado em página:
<%
Dim oXmlBancos,oXmlBanco
Set oXmlBancos = server.CreateObject("MSXML.DOMDocument")
oXmlBancos.async=false
oXmlBancos.load(request.ServerVariables("APPL_PHYSICAL_PATH")& "webDev_teste/marcelo/cae.xml")
%>
<html><head><title>Teste 2</title></head><body><select>
<%for each oXmlBanco in oXmlBancos.selectNodes("//news/[not(@ano=preceding-sibling::news/@ano)]/@ano")%>
<option><%=oXmlBanco.getAttribute("ano")%></option>
<%next%></select>
O erro acontece no "-->[<--not"
O que estou fazendo de errado?
Realmente é possivel fazer um select distinct por meio do ASP?
fontes de pesquisa
http://www.topxml.com/code/cod-432_9894_how-to-select-distinct-items-from-xml-via-xslt.aspx
http://authors.aspalliance.com/joteke/xsltxpathgroupingarticle/article.aspx
Todas as Respostas
-
Podes usar 3.5? Porque é muito fácil fazer isso usando Linq:
Sub Main()
Dim XML = <caes>
<news ano="2008" mes="6"/>
<news ano="2008" mes="6"/>
<news ano="2009" mes="4"/>
</caes>
Dim List = (From X In XML.<news> Group By X.@ano Into DAno = Distinct() Select DAno).ToList
For Each X In List
Console.WriteLine(X.FirstOrDefault.ToString)
Next
End Sub
Resultado:
<news ano="2008" mes="6" />
<news ano="2009" mes="4" />
Press any key to continue . . . -
-