我在txt文件中有一個像這樣的字符串{ {Name Mike} {age 19} {gender male}}
。 我想這將被轉換爲xml作爲下面的輸出。由於我對此很陌生,對我來說這似乎相當令人懷疑。從txt文件讀取字符串並將其轉換爲使用c的xml中的元素#
<name>Mike</name>
<age>19</age>
<gender>male</male>
任何幫助,將不勝感激。
我在txt文件中有一個像這樣的字符串{ {Name Mike} {age 19} {gender male}}
。 我想這將被轉換爲xml作爲下面的輸出。由於我對此很陌生,對我來說這似乎相當令人懷疑。從txt文件讀取字符串並將其轉換爲使用c的xml中的元素#
<name>Mike</name>
<age>19</age>
<gender>male</male>
任何幫助,將不勝感激。
這裏是我的解決方案,首先你在begening在我的情況下創建一個XML文件,我在我的bin文件夾中創建x.xml
,必須建立在XML文件中的root
elemnt,在我的情況示例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++;
}
而不是手動創建一個XML文件,有沒有辦法可以自動化,因爲這需要創建爲安裝程序文件。 – stackdoubt
請參閱我的答案更新,如果不存在xml文件將自動創建 – Mostafiz
其實我正在做這樣的字符串s = @「E:\ Newfolder \ sample.txt」;但它在XElement elm = rt.Element(s2 [i])上遇到異常; 「':'字符,十六進制值0x3A,不能包含在名稱中。」 – stackdoubt
這不是任何普通的標記自動創建文件,但它是有點接近JSON
。你必須自己解析它並建立你的xml文檔。 – Jonesopolis
你可以使用這樣的東西「http://stackoverflow.com/questions/7771500/converting-array-of-objects-to-xml-in-c-sharp」 – Firoz
謝謝。但我希望「名字」成爲屬性,「邁克」應該是它的價值。 – stackdoubt