2009-12-15 38 views
20

Tôi cố gắng để viết ra các yếu tố sau đây sử dụng XmlWriterThêm nhiều tờ khai namespace trong XmlWriter

<kml xmlns="http://www.opengis.net/kml/2.2" xmlns:gx="http://www.google.com/kml/ext/2.2" xmlns:kml="http://www.opengis.net/kml/2.2" xmlns:atom="http://www.w3.org/2005/Atom"> 

Tôi đã có những tuyên bố đầu tiên thực hiện bằng

writer.WriteStartElement("kml", "http://www.opengis.net/kml/2.2"); 

Làm thế nào tôi có thể thêm còn lại 3 khai báo cho cùng một phần tử?

Trả lời

33
writer.WriteAttributeString("xmlns","gx", null, "http://www.google.com/kml/ext/2.2"); 
writer.WriteAttributeString("xmlns","kml", null, "http://www.opengis.net/kml/2.2"); 
writer.WriteAttributeString("xmlns","atom", null, "http://www.w3.org/2005/Atom"); 

Nhận điều đó từ https://msdn.microsoft.com/en-us/library/cfche0ka(v=vs.100).aspx.

+0

Bạn thật tuyệt, thực sự cung cấp mã. –

+0

Cảm ơn Ryan! Điều đó hoạt động. – etechpartner

0

Các không gian tên chỉ đơn giản là thuộc tính. Sử dụng các tiêu chuẩn có nghĩa là viết các thuộc tính cho phần tử.

0

Câu trả lời của Ryan B không đầy đủ vì không gian tên XML chỉ được viết dưới dạng thuộc tính nhưng không được đăng ký trong bảng tên, vì vậy LookupPrefix sẽ không nhận tiền tố của một trong các không gian tên XML, f.i. http://www.w3.org/2005/Atom. Nó sẽ trả lại null thay vì atom.

Để viết một thuộc tính namespace và nhận được không gian tên đăng ký sử dụng

writer.WriteAttributeString("atom", 
          "http://www.w3.org/2000/xmlns/", 
          "http://www.w3.org/2005/Atom"); 

Sử dụng namespace http://www.w3.org/2000/xmlns/ thanh ghi cũng là tiền tố trong bảng tên.