2017-10-06 85 views
0

XmlDocument的價值屬性產生像下面XMLDOCUMENT顯示值作爲XML

<type>document</type> 

我希望它產生這樣

<type value = "document"></type> 

有一個簡單的方法來做到這一點對我來說所有入境?

只是爲了添加更多的細節我有一個json,我從中使用JsonConvert.DeserializeXmlNode將其轉換爲xml。

當我轉換使用此API,我得到的值這樣的 -

<type>document</type> 

我希望它是 -

<type value = "document"></type> 
+0

你是如何產生的?你是否在POCO對象上使用註解(XmlAttribute,XmlElement)? – brugnner

+0

不,我不使用annotaion其在POCO中的簡單屬性,如下所示 - public BundleType Type { get;組; }其中Bundletype值是文檔 – ankush

回答

0

下面是示例代碼來生成屬性。

XmlDocument doc = new XmlDocument(); 
XmlNode node = doc.CreateNode(XmlNodeType.Element, "type", ""); 
XmlAttribute attr = doc.CreateAttribute("value"); 
attr.Value = "Document"; 
node.Attributes.Append(attr); 
doc.AppendChild(node); 
var outputString = doc.InnerXml; 
0

我喜歡使用XML的LINQ類的XML創作。寫和讀更容易。 您可以將它與「使用System.Xml.Linq;」綁定 現在您可以使用「new XAttribute」在元素中創建一個屬性。

這裏是一個小例子:

 //build base 
     XNamespace myNs = "http://www.w3.org/2001/XMLSchema-instance"; 
     XDocument myDoc = new XDocument(
      new XDeclaration("1.0", "UTF-8", null), 
      new XElement("newDocument", 
       new XAttribute(XNamespace.Xmlns + "xsi", myNs), 
       new XAttribute(myNs + "noNamespaceSchemaLocation", "ArchiveDocument.xsd"), 
       new XElement("document", 
        new XAttribute("instanceDate", DateTime.Now.ToString("yyyy-MM-ddTHH:mm:ss")), 
        new XElement("attribute", 
         new XAttribute("attributeDefinitionId", "Belegart"), 
         new XElement("value", reportType)), 
        new XElement("attribute", 
         new XAttribute("attributeDefinitionId", "Date"), 
         new XElement("value", Date.ToString("yyyyMMdd"))), 
        new XElement("attribute", 
         new XAttribute("attributeDefinitionId", "Kalenderjahr"), 
         new XElement("value", Date.ToString("yyyy"))), 
        new XElement("attribute", 
         new XAttribute("attributeDefinitionId", "Kalendermonat"), 
         new XElement("value", Date.Month.ToString())), 
        new XElement("attribute", 
         new XAttribute("attributeDefinitionId", "Mitglieds_Nummer"), 
         new XElement("value", partnerId.ToString())))));