2013-01-02 11 views
0

如何,我創建與下面的代碼正確的XML的XML字符串..添加XSD文件值的XmlAttribute

string myInputXmlString = @"<ApplicationData> 
             <something>else</something> 
            </ApplicationData>"; 
     var doc = new XmlDocument(); 
     doc.LoadXml(myInputXmlString); 

     XmlAttribute newAttr = doc.CreateAttribute(
      "xsi", 
      "noNamespaceSchemaLocation", 
      "http://www.w3.org/2001/XMLSchema-instance"); 
     doc.DocumentElement.Attributes.Append(newAttr); 

     var ms = new MemoryStream(); 
     XmlWriterSettings ws = new XmlWriterSettings 
     { 
      OmitXmlDeclaration = false, 
      ConformanceLevel = ConformanceLevel.Document, 
      Encoding = UTF8Encoding.UTF8 
     }; 
     var tx = XmlWriter.Create(ms, ws); 
     doc.Save(tx); 
     tx.Flush(); 

     var xmlString = UTF8Encoding.UTF8.GetString(ms.ToArray()); 
     Console.WriteLine(xmlString); 

如何添加了XSD信息,這使XML看起來像這樣(與 「FullModeDataset.xsd」 includded?

取而代之的是其當前的代碼是outputing

<ApplicationData 
    xsi:noNamespaceSchemaLocation="" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" /> 
+0

你有沒有想過使用XPath來更新.Config文件..? – MethodMan

+0

@DJ上面的代碼幾乎可以滿足我的需求,但我不知道如何設置xsd屬性值 –

+0

那麼如果您有興趣查看XPAH示例,這裏是一個鏈接..我正在出門其實我會檢查約45分鐘http://www.codeproject.com/Articles/9494/Manipulate-XML-data-with-XPath-and-XmlDocument-C – MethodMan

回答

1

d這個工作偶然嗎?

doc.DocumentElement.SetAttribute("noNamespaceSchemaLocation", 
     "http://www.w3.org/2001/XMLSchema-instance", 
     "FullModeDataset.xsd"); 
+0

其實它是 –