[英]convert name value pairs to xml
给定一堆名称-值对形式的数据,如何将其构造为xml?
例如:
职称:先生
姓名:约翰
姓:母鹿
作为有效的xml到:
<Data>
<Title>Mr</Title>
<Name >John</Name >
<Surname >Doe</Surname >
</Data>
假设您有一本包含键值对的字典。
XElement xe = new XElement("Data", from kvp in dict
select new XElement(kvp.Key, kvp.Value));
假设您使用的是.NET:
您可以使用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));
这是否回答您的问题?
无论您做什么,都可以使用支持XML的API来实现。 不要简单地读取字符串并在标签之间写出来。 由于方便,这很诱人,但是您必须担心字符和实体编码才能正确生成XML。
如果所有数据始终都是上述形式,并且您有一堆数据,请创建一个具有成员的类并将其序列化为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());
}
}
使用以下语法使用明胶 :
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')
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.