hey guys, tôi đã có kịch bản này:Làm thế nào để đọc từ một XmlReader, không nhúc nhích nó chuyển tiếp
while (reader.Read())
{
if (reader.NodeType == XmlNodeType.Element && reader.Name == itemElementName)
{
XElement item = null;
try
{
item = XElement.ReadFrom(reader) as XElement;
}
catch (XmlException ex)
{
//log line number and stuff from XmlException class
}
}
}
trong vòng lặp trên tôi chuyển một nút nào đó (itemElementName) vào một XElement.
Một số nút sẽ là XML tốt và sẽ đi vào XElement, tuy nhiên, một số sẽ không.
Trong CATCH, tôi muốn không chỉ bắt các công cụ XmlException tiêu chuẩn ... Tôi cũng muốn bắt một trích xuất của Xml hiện tại và một chuỗi.
Tuy nhiên, nếu tôi thực hiện bất kỳ thao tác ĐỌC nào trên nút trước khi tôi chuyển nó vào XElement, nó sẽ di chuyển đầu đọc về phía trước.
Làm cách nào để có được "ảnh chụp nhanh" về nội dung của OuterXml của trình đọc mà không can thiệp vào vị trí của nó?
có, hoàn hảo, cảm ơn bạn, đó là chính xác những gì đã xảy ra. cảm ơn vì lời giải thích! – andy
Ah .. Tôi hoàn toàn hiểu sai điểm của ReadSubTree rồi .. xin lỗi về điều đó.Thành thật mà nói, nó không làm cho điều này rõ ràng từ tài liệu trong trình duyệt đối tượng, nhưng trang MSDN làm cho nó rõ ràng hơn. – Flynn1179
Tôi vừa quay lại và có một cái nhìn khác về mã tôi đã sử dụng nó; nó thực sự ngừng đọc hoàn toàn sau khi nó kết thúc với subtree, vì vậy tôi không bao giờ nhận thấy nó đã nâng cao người đọc ban đầu quá. – Flynn1179