Xmldocument在xml中将值显示为value属性

时间:2017-10-06 11:40:40

标签: c# xml xmldocument

xmldocument为我生成所有条目,如下所示

<type>document</type>

我希望它像这样生成

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

有一种简单的方法吗?

只是为了添加更多细节,我有一个json,我将使用JsonConvert.DeserializeXmlNode将其转换为xml。

当我使用这个API转换时,我得到这样的价值 -

<type>document</type>

我希望它是 -

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

2 个答案:

答案 0 :(得分: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;

答案 1 :(得分:0)

我更喜欢用于XML创建的XML Linq类。写入和读取要容易得多。 您可以使用“using 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())))));