2012-05-23 68 views
0
XmlElement xmlElementSAPD = xmlDocument.CreateElement("SAPD"); 
root.AppendChild(xmlElementSAPD); 

xmlElementSAPD.AppendChild(XmlFunctions.GetXMLElement(xmlDocument, "smu", dr.GetString("sma").Trim())); 

上面的c#代碼在下面創建了XML。xml中的命名空間問題

<SAPD> 
<smu>123</smu> 
</SAPD> 

如何更改上面的代碼,這樣我可以得到

<ns0:SAPD> 
<ns0:smu>123</ns0:smu> 
</ns0:SAPD> 

有人嗎?我如何在xml節點中添加ns0:?

+0

你的示例XML是無效的。它沒有定義'ns0'前綴。 –

+0

哪個命名空間對應於「ns0」前綴?您只能有一個前綴映射(通過'xmlns:ns0'聲明)到該節點中的名稱空間或該元素的任何父節點。 – carlosfigueira

+0

這不是整個代碼。已經定義ns0指向模式所在的url。來自數據庫的sma值正在輸出123值。如果我使用<「ns0」,「SAPD」>我得到我不希望在我的節點輸出上寫入xmlns。我只想要的是 user680865

回答

0

您必須將命名空間添加到您的xml文檔。

只給你一個想法,看看下面的

XmlDocument doc = new XmlDocument(); 
XmlSchema schema = new XmlSchema(); 
schema.Namespaces.Add("ns0", "http://www.sample.com/file"); 
doc.Schemas.Add(schema); 
+0

我已經定義了這個東西。我很困惑ns0:在xml的每個節點上。無法擺脫。我想要的全部是 user680865

0

您NS0前綴需要與命名空間否則XML不會是有效的映射。

Assumning NS0被映射到http://tempuri.org下面的代碼可用於:

 XmlDocument doc = new XmlDocument(); 
     XmlElement sapd= doc.CreateElement("ns0","SAPD","http://tempuri.org"); 
     XmlElement smu = doc.CreateElement("ns0", "smu", "http://tempuri.org"); 
     smu.InnerText = "123"; 
     sapd.AppendChild(smu); 
     doc.AppendChild(sapd); 
     doc.InnerXml.ToString(); 
+0

你編碼doc.CreateElement(「ns0」,「SAPD」,「http://tempuri.org」);正在生成。但我不想那樣。我想要的全部是 user680865

+1

@ user680865如果您不想在SAPD節點上定義名稱空間,則必須在某處定義名稱空間,然後它必須在父節點上。您的示例x​​ml沒有父節點,因此它必須在SAPD節點上。 –