我在txt文件中有一个像{ {Name Mike} {age 19} {gender male}}
这样的字符串。
我想将此转换为xml作为以下输出。因为我是新手,对我来说似乎很怀疑。
<name>Mike</name>
<age>19</age>
<gender>male</male>
任何帮助将不胜感激。
答案 0 :(得分:0)
这是我的解决方案,首先你需要创建一个xml文件,我已经在我的bin文件夹中创建了x.xml
,并且必须在xml文件上创建root
元素,在我的情况下在下面的begening示例xml,root
元素名称可以是任何内容,我只使用了root
<root>
</root>
然后编写你的字符串代码如下
string s = "{{Name Mike} {age 19} {gender male}}";
string[] s2 = s.Replace("{", "").Replace("}", "").Split(' ');
for (int i = 0; i < s2.Length; i++)
{
XDocument doc = XDocument.Load("x.xml");
XElement rt = doc.Element("root");
XElement elm = rt.Element(s2[i]);
if (elm != null)
{
elm.SetValue(s2[i + 1]);
}
else
{
XElement x = new XElement(s2[i], s2[i + 1]);
rt.Add(x);
}
doc.Save("x.xml");
i++;
}
希望这能解决您的问题
<强>更新强>
如果你想自动创建文件而不用手工创建xml文件那么你可以这样做
string s = "{{Name Mike} {age 19} {gender male}}";
string[] s2 = s.Replace("{", "").Replace("}", "").Split(' ');
if (!File.Exists("x.xml"))
{
TextWriter tw = new StreamWriter("x.xml", true);
tw.WriteLine("<root>\n</root>");
tw.Close();
}
for (int i = 0; i < s2.Length; i++)
{
XDocument doc = XDocument.Load("x.xml");
XElement rt = doc.Element("root");
XElement elm = rt.Element(s2[i]);
if (elm != null)
{
elm.SetValue(s2[i + 1]);
}
else
{
XElement x = new XElement(s2[i], s2[i + 1]);
rt.Add(x);
}
doc.Save("x.xml");
i++;
}