簡體   English   中英

將字符串[text] [text] [text] [text] [text]轉換為XML的最佳方法是什么?

[英]Best way to transform string [text][text][text][text][text] to XML?

我有[text] [text] [text] [text] [text]格式的字符串,我想將其轉換為XML語法。 我的下面的代碼是這樣的,但我想知道是否/如何改進它,你會以不同的方式做到嗎?

    TextReader tr = new StreamReader(@"C:\values.txt");
    string message = tr.ReadToEnd().Trim().Replace("][", "|").Replace("[", "").Replace("]", "");
    tr.Close();            
    string[] nodeStart = { "<firstNode>", "<secondNode>", "<thirdNode>", "<fourthNode>", "<fifthNode>" };
    string[] nodeEnd = { "</firstNode>", "</secondNode>", "</thirdNode>", "</fourthNode>", "</fifthNode>" };
    string[] messageArr = message.Split('|');

    StringBuilder sb = new StringBuilder();
    sb.AppendLine("<rootNode>");
    for(int i = 0; i < messageArr.Length; i++)
    {
        sb.AppendLine(String.Format("{0}{1}{2}", nodeStart[i], messageArr[i], nodeEnd[i]));
    }
    sb.AppendLine("</rootNode>");
    Console.WriteLine(sb);
    Console.ReadLine();

此示例簡化了xml的輸出/格式,提前感謝。

為了支持我的評論:使用System.Xml.XmlWriter

這是一篇帶有示例的文章: http//msdn.microsoft.com/en-us/library/system.xml.xmltextwriter.aspx

或者使用System.Xml.Linq.XDocumentXDocument.Save()

http://msdn.microsoft.com/en-us/library/system.xml.linq.xdocument.save.aspx

在LINQ中(因為Zip而依賴於.NET 4或Silverlight 4):

string[] elementNames = new string[] { "first", "second", "third", "forth", "fifth" };
string input = "[text][text][text][text][text]";

XElement[] elements = input
     .Substring(1, input.Length - 1)
     .Split("][")
     .Zip(elementNames, (value, element) => new XElement(element, value))
     .ToArray();

XDocument document = new XDocument(
    new XElement("Root", elements)
);

string xml = document.ToString();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM