cXml 如何使用预定义 class 添加标签
cXml how to add tag using predefined class
我在向 cXml 文档添加标签元素时遇到问题。我使用预定义的 class 从 cxml.org 进行序列化。我想将名为 SharedSecret 的标签添加到现有文档中。它应该看起来像:
<Header>
<From><Credential domain="AribaNetworkUserId">
<Identity>sender@sendercompany.com</Identity>
</Credential>
</From>
<To>
<!-- Recipient -->
<Credential domain="AribaNetworkUserId">
<Identity>recipient@recipientcompany.com</Identity>
</Credential>
</To>
<Sender>
<!-- Sender -->
<Credential domain="AribaNetworkUserId">
<Identity>sender@sendercompany.com</Identity>
<SharedSecret>abracadabra</SharedSecret>
</Credential>
<UserAgent>Sender Application 1.0</UserAgent>
</Sender>
</Header>
我有课:
public partial class Header
{
/// <remarks/>
public From From;
/// <remarks/>
public To To;
/// <remarks/>
public Sender Sender;
/// <remarks/>
[System.Xml.Serialization.XmlArrayItemAttribute("Node", IsNullable = false)]
public Node[] Path;
/// <remarks/>
public OriginalDocument OriginalDocument;
}
public partial class Node
{
/// <remarks/>
[System.Xml.Serialization.XmlElementAttribute("Credential")]
public Credential[] Credential;
/// <remarks/>
[System.Xml.Serialization.XmlAttributeAttribute()]
public NodeType type;
/// <remarks/>
[System.Xml.Serialization.XmlAttributeAttribute()]
public NodeItemDetailsRequired itemDetailsRequired;
/// <remarks/>
[System.Xml.Serialization.XmlIgnoreAttribute()]
public bool itemDetailsRequiredSpecified;
}
public Identity Identity;
/// <remarks/>
[System.Xml.Serialization.XmlElementAttribute("CredentialMac", typeof(CredentialMac))]
[System.Xml.Serialization.XmlElementAttribute("DigitalSignature", typeof(DigitalSignature))]
[System.Xml.Serialization.XmlElementAttribute("SharedSecret", typeof(SharedSecret))]
public object Item;
...
public partial class SharedSecret
{
/// <remarks/>
[System.Xml.Serialization.XmlTextAttribute()]
[System.Xml.Serialization.XmlAnyElementAttribute()]
public System.Xml.XmlNode[] Any;
}
而且我不知道如何将此标签添加到文档中。
我花了很多时间尝试添加一些 Xmlnodes 元素和类似的东西。
我无法掌握的最困难的事情是 SharedSecret class ,我有一个字段,我必须添加一些字符串 insted 另一个 XmlNode。
所有 cXml class 都可用 http://212.59.240.129/upload/cxml.txt
请帮助我。
这是我的测试代码:
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>
我在向 cXml 文档添加标签元素时遇到问题。我使用预定义的 class 从 cxml.org 进行序列化。我想将名为 SharedSecret 的标签添加到现有文档中。它应该看起来像:
<Header>
<From><Credential domain="AribaNetworkUserId">
<Identity>sender@sendercompany.com</Identity>
</Credential>
</From>
<To>
<!-- Recipient -->
<Credential domain="AribaNetworkUserId">
<Identity>recipient@recipientcompany.com</Identity>
</Credential>
</To>
<Sender>
<!-- Sender -->
<Credential domain="AribaNetworkUserId">
<Identity>sender@sendercompany.com</Identity>
<SharedSecret>abracadabra</SharedSecret>
</Credential>
<UserAgent>Sender Application 1.0</UserAgent>
</Sender>
</Header>
我有课:
public partial class Header
{
/// <remarks/>
public From From;
/// <remarks/>
public To To;
/// <remarks/>
public Sender Sender;
/// <remarks/>
[System.Xml.Serialization.XmlArrayItemAttribute("Node", IsNullable = false)]
public Node[] Path;
/// <remarks/>
public OriginalDocument OriginalDocument;
}
public partial class Node
{
/// <remarks/>
[System.Xml.Serialization.XmlElementAttribute("Credential")]
public Credential[] Credential;
/// <remarks/>
[System.Xml.Serialization.XmlAttributeAttribute()]
public NodeType type;
/// <remarks/>
[System.Xml.Serialization.XmlAttributeAttribute()]
public NodeItemDetailsRequired itemDetailsRequired;
/// <remarks/>
[System.Xml.Serialization.XmlIgnoreAttribute()]
public bool itemDetailsRequiredSpecified;
}
public Identity Identity;
/// <remarks/>
[System.Xml.Serialization.XmlElementAttribute("CredentialMac", typeof(CredentialMac))]
[System.Xml.Serialization.XmlElementAttribute("DigitalSignature", typeof(DigitalSignature))]
[System.Xml.Serialization.XmlElementAttribute("SharedSecret", typeof(SharedSecret))]
public object Item;
...
public partial class SharedSecret
{
/// <remarks/>
[System.Xml.Serialization.XmlTextAttribute()]
[System.Xml.Serialization.XmlAnyElementAttribute()]
public System.Xml.XmlNode[] Any;
}
而且我不知道如何将此标签添加到文档中。 我花了很多时间尝试添加一些 Xmlnodes 元素和类似的东西。 我无法掌握的最困难的事情是 SharedSecret class ,我有一个字段,我必须添加一些字符串 insted 另一个 XmlNode。
所有 cXml class 都可用 http://212.59.240.129/upload/cxml.txt
请帮助我。
这是我的测试代码:
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>