0

私は本当にあなたにこれを尋ねる必要があります.あなたの多くはそれが単純な問題だと思うかもしれません. コラージュには本当にこれが必要です。

xml ドキュメントを作成する必要がありますが、これは正常に機能しています。

ここで、名前空間を定義する必要があります。少なくとも、それが名前空間であると思います。

これをドキュメントに挿入する必要があります

  <language>
    <language id="1" tag="english"/>
    <language id="2" tag="english"/> 
  </language>

そして、次のように使用します。

<item id="1">
  <item>
    <item language="1">Periods</item>
  </item>
<item/>

私のコード:

XmlElement element = xmldoc.CreateElement("", "item", "1");

問題は、私がxmlnsを取得する言語の代わりに、名前空間をどこで定義でき、どのように作成するかです <language id="1" tag="english"/> ?

私の問題は、定義<language id="1" tag="english"/> 方法がわからず、このように使用する方法がわからないことです<item language="1">Periods</item>

4

1 に答える 1

1

おそらく単純なクラスを作成できます。たとえば、次のような Speech クラスを使用します。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml;
using System.Xml.Serialization;

namespace StackOverflowSamples
{
    [Serializable]
    public class Speech
    {
        public Speech()
        {
            this.Items = new List<LanguageItem>();
        }

        [XmlArray]
        public List<LanguageItem> Items;
    }

    [Serializable]
    public class LanguageItem
    {
        [XmlAttribute]
        public string Language { get; set; }

        [XmlAttribute]
        public int Id { get; set; }
    }
}

これは、次のコードで簡単にシリアル化できます。

// use built in serialization mechanism
XmlSerializer mySerializer = new XmlSerializer(typeof(Speech));
// Writing the file requires a TextWriter.
TextWriter writer = new StreamWriter("test.xml");

var speech = new Speech();
var lang1 = new LanguageItem() { Id = 1, Language = "English", };
var lang2 = new LanguageItem() { Id = 2, Language = "Slovenian", };
speech.Items.Add(lang1);
speech.Items.Add(lang2);

XmlSerializerNamespaces ns = new XmlSerializerNamespaces();
//Add an empty namespace and empty value
ns.Add("", "");

mySerializer.Serialize(writer, speech, ns);
writer.Close();

XML は次のようになります。

<?xml version="1.0" encoding="utf-8"?>
<Speech>
  <Items>
    <LanguageItem Language="English" Id="1" />
    <LanguageItem Language="Slovenian" Id="2" />
  </Items>
</Speech>
于 2012-06-23T12:51:28.603 に答える