29

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">

私は最初の宣言を使用して行われました

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

残りの3つの宣言を同じ要素に追加するにはどうすればよいですか?

4

3 に答える 3

49
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");

https://msdn.microsoft.com/en-us/library/cfche0ka(v=vs.100).aspxから取得しました。

于 2009-12-15T05:07:50.227 に答える
8

Ryan Bの答えは不完全です。これは、XML名前空間が属性としてのみ書き込まれ、名前テーブルに登録されていないためLookupPrefix、XML名前空間の1つであるfiのプレフィックスの取得に失敗するためhttp://www.w3.org/2005/Atomです。null代わりに戻りますatom

名前空間属性を記述して名前空間を登録するには、

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

名前空間を使用するとhttp://www.w3.org/2000/xmlns/、名前テーブルのプレフィックスも登録されます。

于 2018-02-10T10:06:14.300 に答える
0

名前空間は単なる属性です。要素の属性を書き込む標準的な手段を使用します。

于 2009-12-15T04:54:16.847 に答える