Tôi có một khách hàng gửi một nguồn cấp dữ liệu xml mà tôi phân tích bằng cách sử dụng mã sau đây. Mã này hoạt động.Làm cách nào để bỏ qua một điều cụ thể với mệnh đề LINQ where?
reviews = from item in xmlDoc.Descendants("node")
select new ForewordReview()
{
PubDate = (string)item.Element("created"),
Isbn = (string)item.Element("isbn"),
Summary = (string)item.Element("review")
};
Sau khi nhận được tất cả "bài đánh giá" của tôi, tôi đã bỏ IEnumerable làm Danh sách và trả lại. Ban đầu, tôi đã có một thời gian vui vẻ và dễ dàng phân tích cú pháp XML của họ mà sử dụng để trông như thế này:
<reviews>
<node>
<created>01-01-1900</created>
<ISBN>12345657890123</ISBN>
<Review>This is a nice and silly book</Review>
</node>
<node>
<created>01-01-2011</created>
<ISBN>1236245234554</ISBN>
<Review>This is a stupid book</Review>
</node>
<node>
<created>12-06-1942</created>
<ISBN>1234543234577</ISBN>
<Review>This is a old, naughty book</Review>
</node>
</reviews>
Họ đã, tuy nhiên, thay đổi sơ đồ của họ, mà tôi không có quyền truy cập, và bây giờ họ là XML thêm vào một thẻ <node>
cuối cùng vào cuối mà không chứa các phần tử quá cố mà tôi đang tìm kiếm, và vì vậy, phân tích cú pháp của tôi bị hỏng trên thẻ cuối cùng này và tôi ném một ngoại lệ. Dưới đây là ví dụ:
<reviews>
<node>
<created>01-01-1900</created>
<ISBN>12345657890123</ISBN>
<Review>This is a nice and silly book</Review>
</node>
<node>
<created>01-01-2011</created>
<ISBN>1236245234554</ISBN>
<Review>This is a stupid book</Review>
</node>
<node>
<created>12-06-1942</created>
<ISBN>1234543234577</ISBN>
<Review>This is a old, naughty book</Review>
</node>
<node>
<count>4656</count>
</node>
</reviews>
Tôi cần biết cách có bỏ qua thẻ cuối cùng này (luôn ở cuối tài liệu) mặc dù nó có cùng tên với tất cả "nút" khác thẻ tôi đang tìm kiếm. Tôi có một thử bắt xung quanh khối mã này nhưng nó không trả lại danh sách các đánh giá tốt ra nếu nó thấy lỗi này.
Xin cảm ơn các bạn.
có thể thêm một 'nơi item.Element (" count ") == null' _ (hoặc đường khác tròn" tạo "! = Null) _ – ordag
@ordag Tôi thực sự kết hợp bạn vào giải pháp của tôi cũng như với một số kiểm tra null từ đề nghị delltrees. Cảm ơn. –