2013-12-09 5 views
5

Sto cercando di scoprire se esiste un modo per calcolare le dimensioni del file da XmlReader. Non vedo nulla sull'oggetto del lettore che aiuta a determinare la dimensione. Qualche idea? Grazie!È possibile calcolare la dimensione di un xml se è caricato in XmlReader?

Using reader As Xml.XmlReader = GetXML(columnName.ToString()) 

End Using 
+1

Qual è il motivo della necessità di conoscere le dimensioni? Questo potrebbe aiutare a trovare una soluzione alternativa. –

+0

È solo per la visualizzazione all'utente per qualche scopo. – Jyina

risposta

4

XmlReader non potrebbe leggere da qualcosa che ha una dimensione conosciuta o definitivo. La soluzione migliore sarebbe quella di fare qualcosa con la fonte di ciò che sta leggendo lo XmlReader. Per esempio. potresti avere un Stream e provare a ottenere Stream.Length (alcuni flussi non supportano questo, in quanto non hanno una lunghezza). Ciò richiederà la modifica di GetXML.

+0

Inoltre, non tutti gli stream hanno una lunghezza. –

+0

@JohnSaunders buon punto. La documentazione mostra che 'Length' potrebbe essere lanciato, ma è bene notare che nella mia risposta. –

1

Se è necessario utilizzare XmlReader come origine, questo dovrebbe farti vicino alle dimensioni del file (C#):

int sizeInBytes = Encoding.ASCII.GetBytes(reader.ReadOuterXml()).Length; 
+0

Sì, devo usare XmlReader. Grazie. Lo proverò. – Jyina