2011-11-16 30 views
7

Tôi đang làm việc trên một ứng dụng di động và phải đọc nguồn cấp dữ liệu xml và phân tích cú pháp thông tin. Ở đó nó có một thẻ đặc biệt như thế này <dc:creator> Jonethon Owens </dc:creator>Cú pháp XML khi sử dụng dấu hai chấm (:), trong các thẻ

Trong C# Tôi đang sử dụng LINQ to XML và không biết cách xử lý chính xác loại thẻ này để phân tích cú pháp và nhận thông tin.

Nếu ai đó có thể giải thích cách đạt được điều này, thực sự được đánh giá cao. Cảm ơn bạn đã Advance

+0

Xem liệu 'dc' có được khai báo là không gian tên ở đầu xml hay không. – Kangkan

+0

Ở đầu tài liệu xml nó nói xmlns: dc = "http://purl.org/dc/elements/1.1/" – JibW

+0

Vì vậy, bạn có câu trả lời từ FailedDev (không thất bại)! – Kangkan

Trả lời

10

Bạn cần tiền tố không gian tên.

XNamespace dc = "http://purl.org/dc/elements/1.1/"; 


var query = from lst in XElement.Load(@"foo.xml").Elements(dc +"creator") 

      select ... 
+0

Cảm ơn FailedDev, tôi nhận được một ngoại lệ "đối tượng null". Có thể tôi đã cho XNamespace dc = "purl.org/dc/elements/1.1/". Bởi vì ở đầu tệp XML, nó chỉ ra xmlns: dc = "purl.org/dc/elements/1.1/". Có cái gì khác nên gán cho XNamespace dc. – JibW

+0

@JibW Không có đây là không gian tên của bạn. Bạn đang nhận được ngoại lệ bởi một số đoạn mã khác mà bạn không hiển thị. – FailedDev

+0

Tất cả các thẻ XML khác đều bình thường. Họ không có dấu chấm phẩy. Vì vậy, những người khác làm việc tốt khi tôi nhận xét [Creator = (string) result.Element (dc + "creator"). Tôi đã cho XNamespace dc = "purl.org/dc/elements/1.1/" như thế này. Tôi không chắc chắn giá trị mà tôi đã gán cho dc là chính xác – JibW

Các vấn đề liên quan