Pergunta

Eu estou usando um XmlDocument para analisar e manipular uma string XHTML, convertendo alguns nós para não-HTML nós.

O que é a melhor maneira de obter uma lista de todos os nós com um determinado nome de classe? isso pode ser feito com o XPath?

Foi útil?

Solução

Com uma determinada classe? Se é apenas uma classe, então você deve ser capaz de fazer algo assim .SelectNodes ( "// * [@ class = 'foo']"). Se não for xhtml, então o HTML agilidade pack vale a pena olhar.

No cliente, jQuery seria uma boa opção -. E suporta nomes de classe composta

Se você tem vários nomes de classes em elementos individuais, e necessidade de lidar com isso no servidor, eu espero que você pode precisar de encontrar as classes de candidato primeira ( "// * [@ classe! = '']), E depois loop sobre eles fazendo um Split() e verificação para a classe-nome nos resultados;. ie puxá-lo para além manualmente

termos em LINQ, algo como:

        var qry = from XmlElement el in d.SelectNodes("//*[@class!='']")
                  let classes = el.GetAttribute("class").Split(new[] {' '},
                          StringSplitOptions.RemoveEmptyEntries)
                  where classes.Contains("foo")
                  select el;

Outras dicas

Sim, é fácil com XPath:

//*[@class='foo']
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top