Pergunta

Eu fiz análise XML antes, mas nunca em uma escala maciça. Se eu estou trabalhando com muitos documentos semelhantes a este formato:

<?xml version="1.0" ?>
<items comment="something...">
  <uid>6523453</uid>
  <uid>94593453</uid>
</items>

O que é a maneira mais rápida para analisar estes documentos?
1) XML DOM
2) Serialize XML - Rehydrate a um objeto .NET
3) Alguns outro método

Atualizar
Eu esqueci de mencionar que haveria cerca de 8000 elementos uid, em média.

Foi útil?

Solução

Usando XmlReader é definitivamente vai ser o método mais rápido, que você vai ter que fazer toda a análise manualmente, é claro. Lê-se directamente a partir do fluxo sem cache qualquer coisa, porém não é muito conveniente de usar em comparação com o DOM.

Comparando os dois você sugeriu: serialização deve ser mais rápido do que usando o DOM uma vez que (eu acredito) que não armazena em cache a árvore inteira dentro da memória - ele também certamente tem um fácil de usar interface, se você está apontando especificamente para executar a serialização.

Outras dicas

Eu diria que o XML serialização seria o melhor dos dois mundos. Você começa a facilidade de utilização, bem como uma boa velocidade. Há alguma sobrecarga adicional com a serialização XML ... no entanto se você usou XmlReader manualmente, pelo menos você vai replicar, se não exceder, o sobrecarga no seu próprio como você usa esse leitor de recriar o seu gráfico de objeto.

Dependendo do que você precisa fazer com os dados que o XmlReader mencionado por @Noldorin é sua melhor aposta para streaming de processamento de estilo. Se precisar de mais acesso estilo ad-hoc para os dados utilizando XPath eo XPathDocument será muito mais rápido do que o documento XML bruto.

http://msdn.microsoft.com/en-us/library /eh3exdc4.aspx

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top