给出一组名称 - 值对形式的数据如何将其构造成xml?
例如:
标题:先生
姓名:John
姓:Doe
作为有效的xml sililar to:
<Data>
<Title>Mr</Title>
<Name >John</Name >
<Surname >Doe</Surname >
</Data>
答案 0 :(得分:2)
假设你有一个包含键值对的字典......就像..
XElement xe = new XElement("Data", from kvp in dict
select new XElement(kvp.Key, kvp.Value));
答案 1 :(得分:1)
假设您使用的是.NET:
答案 2 :(得分:0)
您可以使用System.Linq.Xml中的XElement
来实现var data=nameValuePair.Value;
var xelement=new XElement("Data",
new XElement("Title",data.Title),
new XElement("Name",data.Name),
new XElement("Surname",data.Surname));
这回答你的问题吗?
答案 3 :(得分:0)
无论您做什么,都可以使用支持XML的API来执行此操作。不要简单地读取字符串并在标记之间写出。它很诱人,因为它很方便,但您必须担心字符和实体编码才能正确生成XML。
答案 4 :(得分:0)
如果所有数据始终采用上述形式&amp;你有一堆, 创建一个包含成员和班级的班级将其序列化为xml。
public class test
{
public string title;
public string name;
public string surname;
}
void main()
{
List<test> t = new List<test>();
test t1 = new test();
t1.title = "Mr.";
t1.name = "John";
t1.surname = "Doe";
.
.
.
test tn = new test();
t.Add(t1);
t.Add(t2);
.
.
.
.
t.Add(tn);
//Serialize to xml.
try
{
using (FileStream fs = new FileStream(szFileName, FileMode.Create))
{
XmlSerializer xs = new XmlSerializer(typeof(List<test>));
xs.Serialize(fs, t);
}
}
catch(Exception Ex)
{
Messagebox.Show(Ex.ToString());
}
//And deserialize the data from xml to objects
try
{
using (System.IO.FileStream fs = new FileStream(szDataFile,FileMode.Open))
{
System.Xml.Serialization.XmlSerializer xs = new XmlSerializer(typeof(List<test>));
List<test> t1 = new List<test>();
t1 = xs.Deserialize(fs) as List<test>;
}
}
catch(Exception Ex)
{
Messagebox.Show(Ex.ToString());
}
}
答案 5 :(得分:0)
使用Gelatin语法:
define nl /[\r\n]/
define ws /\s+/
define fieldname /\w+/
define value /[^\r\n,]/
grammar input:
match nl:
do.skip()
match fieldname ':' ws value nl:
out.add('$0', '$3')