cXml如何使用预定义的类添加标记

时间:2018-02-18 07:56:06

标签: c# xml serialization xsd cxml

我在将标签元素添加到cXml文档时遇到问题。我从cxml.org使用预定义的类进行序列化。我想将名为SharedSecret的标签添加到现有文档中。它应该看起来像:

const children = [];
json_data.forEach(item => {
    const dict = {
       name: item.name,
       path: item.path,
       meta:  {
           label: item.label,
           link: item.link,
       },
       component: lazyLoading('testitem/basic'),
    }
    children.push(dict);
});

我有兴趣:

{{1}}

而且我不知道如何将此标记添加到文档中。 我花了很多时间尝试添加一些Xmlnodes元素和类似的东西。 我无法掌握的最困难的事情是SharedSecret类,我有一个字段,我必须添加另一个XmlNode的字符串。

所有cXml类都可用http://212.59.240.129/upload/cxml.txt

请帮帮我。

1 个答案:

答案 0 :(得分:0)

这是我的测试代码:

        const string FILENAME = @"c:\temp\test.xml";
        static void Main(string[] args)
        {
            XmlDocument doc = new XmlDocument();
            XmlNode[] identity = new XmlNode[] { doc.CreateTextNode("sender@sendercompany.com")};
            XmlNode[] sharedSecret = new XmlNode[] { doc.CreateTextNode("abracadabra") };

            Header header = new Header()
            {
                Sender = new Sender()
                {
                    Credential = new Credential[] {
                        new Credential() { 
                            domain = "AribaNetworkUserId",
                           Identity = new Identity() { Any =  identity },
                           Item = new SharedSecret() { Any = sharedSecret }
                        }
                    }
                }
            };

            XmlSerializer serializer = new XmlSerializer(typeof(Header));

            StreamWriter writer = new StreamWriter(FILENAME);
            serializer.Serialize(writer, header);
            writer.Flush();
            writer.Close();

        }

这是Xml

<?xml version="1.0" encoding="utf-8"?>
<Header xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <Sender>
    <Credential domain="AribaNetworkUserId">
      <Identity>sender@sendercompany.com</Identity>
      <SharedSecret>abracadabra</SharedSecret>
    </Credential>
  </Sender>
</Header>