2012-06-23 194 views
0

我真的很想問你這個問題,你們中許多人可能會認爲這是一個簡單的 問題,但請幫忙我在這個問題上工作了幾個小時,而且我不是更接近該解決方案的步驟 。我真的需要這個拼貼。添加xmlns命名空間

我必須創建一個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"); 

的問題是語言,我的insted的獲得xmlns,我可以在哪裏定義 命名空間,以及如何創建<language id="1" tag="english"/> ?

我的問題是,我不知道如何定義<language id="1" tag="english"/> ,我不知道我該如何使用它像這樣<item language="1">Periods</item>

+2

你可能知道你的例子不是有效的xml,是嗎?什麼是「納茲夫」,該項目可能應該是?你認爲名稱空間可以解決你的問題,究竟是什麼問題?請詳細介紹一下。 –

+0

ups,我忘了翻譯它。原始文件在斯洛文尼亞,所以我翻譯它,它應該是valide,因爲這是從模板 – Shawn

+0

我編輯了我的答案有輸出更像規範。請回答是否可以幫助你。 –

回答

1

你也許可以寫一個簡單的類,例如我用語音類像這樣的:

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> 
+0

謝謝:),這樣做,除了如何擺脫xmlns:xsi? – Shawn

+0

答案舉例說明了如何實現這一點。這很簡單。 –

+0

我應該如何使用mySerializer?它是什麼樣的對象? – Shawn