Pergunta

Vou fazer algumas suposições aqui:

  1. XPathDocument não é editável.
  2. Xmldocument é editável.
  3. O XPathDocument é mais eficiente para o XSLCompiledTransform.

Sendo esse o caso (e por favor me corrija se eu estiver errado), seria melhor (mais eficiente) para:

  1. Faça modificações usando o XMLDocument e converta -se em um XPathDocument antes da transformação. Existe uma maneira otimizada de fazer isso?
  2. Basta ficar com o XMLDocument através da transformação.

Alguns antecedentes, estou recebendo um XML complexo de um serviço da web e use o XPath para encontrar alguns elementos que precisam ser modificados e, em seguida, use um XSLT para criar HTML.

Obrigado antecipadamente pela ajuda.

Foi útil?

Solução

Depende de quanta modificação é necessária, quão grandes são os dados e se você está familiarizado com o XSLT. Se "não" até o último, basta usar XDocument etc (da última vez que corri um perfil, XDocument foi mais rápido que XmlDocument para meus dados - Execute seus próprios testes). Usar XDocument.Load / XDocument.Parse, encontre seu nó, edite -o e salve -o.


Se você devo Use XSLT, então XDocument Não é realmente uma opção; Depois de carregá -lo em XmlDocument você pode também fique com XmlDocument - Eu não recomendaria analisá -lo em um segundo Dom.

Claro, faz nos perguntarmos: por que modificar o xml fora de XSLT se você quiser usar o XSLT; Talvez apenas traduza durante o XSLT?

Para obter uma resposta 100% precisa para seus dados Você precisará o perfil, é claro. Mas coisas como o uso apropriado de construções de agrupamento XSLT geralmente produzem um Muito de diferença maior do que XmlDocument vs. XPathDocument.

Outras dicas

Basta usar o XmlDocument classe para a transformação. Teria que ser um documento enorme para realmente ver um ganho de desempenho. Você pode querer compilar uma instância estática do XslCompiledTransform Classe se você planeja usá -lo várias vezes.

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