1

MSDN、W3Schools、および他の多くのサイトでこれを調べてみましたが、誰も答えを持っていないようです. これが私の問題です:

XML ドキュメントの開始要素を生成しようとしています。作成する必要がある特定の要素は次のとおりです。

<ns1:getRecordsResponse xmlns:ns1="http://someurl/schemas">

私が行った調査に基づいて、次のコードを使用してその要素の後半を適切に生成することができました。

writer.WriteAttributeString("xmlns", "ns1", null, "http://someurl/schemas");

ただし、最初の部分を適切に生成できません。私は writer.StartElement("ns1", "getRecordsResponse") を使用してみましたが、同じ行ですが、名前が逆になり、3 つの場所のそれぞれに 3 番目の引数として null を追加しようとしましたが、うまくいきません。また、WriteElementString メソッドを使用しようとしましたが、無効な操作の例外がスローされるため、正しく行っていない必要があります。

writer.WriteElementString("ns1", "getCitationsResponse", "http://someurl/schemas", null);

要素を適切に書き込むにはどうすればよいですか?

4

1 に答える 1

2

これはあなたが望むことをするようです:

using System;
using System.Xml;

class Test
{
    public static void Main(string[] args)
    {
        using (var writer = XmlWriter.Create(Console.Out))
        {
            writer.WriteStartElement("ns1", "foo", "http://someurl/schemas");
            writer.WriteAttributeString("xmlns", "ns1", null, "http://someurl/schemas");
            writer.WriteEndElement();
        }
    }
}

出力(XML宣言を除く):

<ns1:foo xmlns:ns1="http://someurl/schemas" />

その過負荷に関するドキュメントをWriteStartElement見ると、これらが順番にパラメータであるため、なぜそれが機能するのかが明確になるはずです。

  • prefix
    タイプ:System.String
    要素の名前空間プレフィックス。
  • localName
    タイプ:System.String
    要素のローカル名。
  • ns
    タイプ:System.String
    要素に関連付ける名前空間URI。
于 2012-11-13T14:10:14.373 に答える