Domanda

Io vado su un paio di ipotesi qui:

  1. XPathDocument non è modificabile.
  2. XmlDocument è modificabile.
  3. XPathDocument è più efficiente per XslCompiledTransform.

Stando così le cose (e vi prego di correggermi se sbaglio), sarebbe meglio (più efficiente) a:

  1. apportare modifiche utilizzando la XmlDocument, poi convertire in un XPathDocument prima del trasformare. C'è un modo ottimizzato per fare questo?
  2. Basta rimanere con il XmlDocument attraverso la trasformazione.

Alcuni di fondo, sto diventando un xml complesso da un webservice, quindi utilizzare XPath per trovare alcuni elementi che devono essere modificati, quindi utilizzare un XSLT per creare html.

Grazie in anticipo per l'aiuto.

È stato utile?

Soluzione

Dipende da quanto la modifica è necessaria, quanto grande i dati sono, e se si ha familiarità con XSLT. Se "non" fino all'ultimo, basta usare XDocument etc (l'ultima volta mi sono imbattuto un profilo, XDocument era più veloce di XmlDocument per i miei dati - eseguire i propri test). Utilizzare XDocument.Load / XDocument.Parse, trovare il nodo, modificarlo e salvarlo.


Se deve l'uso XSLT, quindi XDocument in realtà non è un'opzione; una volta che hai caricato in XmlDocument si potrebbe anche rimanere con XmlDocument -. non voglio raccomandare l'analisi in una secondo DOM

Naturalmente, rende ci chiediamo: perché modificare il xml fuori di XSLT, se avete intenzione di utilizzare XSLT; forse solo tradurre durante l'XSLT?

Per avere una risposta precisa al 100% per i dati sarà necessario il profilo it, naturalmente. Ma le cose come l'uso appropriato di XSLT raggruppamento costrutti spesso fare un molto differenza più grande di XmlDocument vs XPathDocument.

Altri suggerimenti

Basta usare la classe XmlDocument per la trasformazione. Dovrebbe essere un documento voluminoso di vedere davvero un guadagno di prestazioni. Si consiglia di compilare un esempio statico della classe XslCompiledTransform se si pensa di utilizzarlo più volte.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top