このような文字列は、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>
助けていただければ幸いです。
私の解決策は、私のケースではxmlファイルを作成する必要があります。x.xml
を私のbinフォルダに作成し、xmlファイルにroot
elemntを作成する必要があります。 、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++;
}
希望以下のようにあなたの文字列を足すためだけroot
<root>
</root>
、コードを使用している
更新
それはJSONにやや近いですが、あなたが、あなたはどんな共通のマークアップではありません、このよう
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])の例外をヒットします。 "':'文字は16進値0x3Aを名前に含めることはできません。 – stackdoubt
を行うことができます手でxmlファイルを作成せずにファイルの作成を自動化する場合。あなたはそれを自分で解析し、XML文書を構築する必要があります。 – Jonesopolis
「http://stackoverflow.com/questions/7771500/converting-array-of-objects-to-xml-in-c-sharp」のようなものを使用できます。 – Firoz
ありがとうございます。しかし、私は "名前"が属性になり、 "マイク"がそれの価値でなければなりません。 – stackdoubt