Convert a stream of text lines separated with newline sequences into an XML build result. : XML Read « XML « C# / C Sharp

Home
C# / C Sharp
1.2D Graphics
2.Class Interface
3.Collections Data Structure
4.Components
5.Data Types
6.Database ADO.net
7.Design Patterns
8.Development Class
9.Event
10.File Stream
11.Generics
12.GUI Windows Form
13.Language Basics
14.LINQ
15.Network
16.Office
17.Reflection
18.Regular Expressions
19.Security
20.Services Event
21.Thread
22.Web Services
23.Windows
24.Windows Presentation Foundation
25.XML
26.XML LINQ
C# / C Sharp by API
C# / CSharp Tutorial
C# / CSharp Open Source
C# / C Sharp » XML » XML ReadScreenshots 
Convert a stream of text lines separated with newline sequences into an XML build result.
 
//CruiseControl is open source software and is developed and maintained by a group of dedicated volunteers. 
//CruiseControl is distributed under a BSD-style license.
//http://cruisecontrol.sourceforge.net/
using System;
using System.Collections;
using System.Collections.Generic;
using System.IO;
using System.Text;
using System.Text.RegularExpressions;

namespace ThoughtWorks.CruiseControl.Core.Util
{
    /// <summary>
    /// Class with handy stirng routines
    /// </summary>
    public class StringUtil
    {

        /// <summary>
        /// Convert a stream of text lines separated with newline sequences into an XML build result.
        /// </summary>
        /// <param name="input">the text stream</param>
        /// <param name="msgLevel">the message level, if any.  Values are "Error" and "Warning".</param>
        /// <returns>the build result string</returns>
        /// <remarks>If there are any non-blank lines in the input, they are each wrapped in a
        /// <code>&lt;message&gt;</code> element and the entire set is wrapped in a
        /// <code>&lt;buildresults&gt;</code> element and returned.  Each line of the input is encoded
        /// as XML CDATA rules require.  If the input is empty or contains only whitspace, an 
        /// empty string is returned.
        /// Note: If we can't manage to understand the input, we just return it unchanged.
        /// </remarks>
        public static string MakeBuildResult(string input, string msgLevel)
        {
            StringBuilder sb = new StringBuilder();

            // Pattern for capturing a line of text, exclusive of the line-ending sequence.
            // A "line" is an non-empty unbounded sequence of characters followed by some 
            // kind of line-ending sequence (CR, LF, or any combination thereof) or 
            // end-of-string.
            Regex linePattern = new Regex(@"([^\r\n]+)");

            MatchCollection lines = linePattern.Matches(input);
            if (lines.Count > 0)
            {
                sb.Append(Environment.NewLine);
                sb.Append("<buildresults>");
                sb.Append(Environment.NewLine);
                foreach (Match line in lines)
                {
                    sb.Append("  <message");
                    if (msgLevel != string.Empty)
                        sb.AppendFormat(" level=\"{0}\"", msgLevel);
                    sb.Append(">");
                    sb.Append(line.ToString());
                    sb.Append("</message>");
                    sb.Append(Environment.NewLine);
                }
                sb.Append("</buildresults>");
                sb.Append(Environment.NewLine);
            }
            else
                sb.Append(input)// All of that stuff failed, just return our input
            return sb.ToString();
        }
   }
}

   
  
Related examples in the same category
1.Writing XML with the XmlWriter Class
2.Reading from an XML file.
3.Access Attributes
4.Load Xml Document SampleLoad Xml Document Sample
5.Read An XML File
6.Read XML From URL
7.Illustrates the XmlTextReader classIllustrates the XmlTextReader class
8.Load xml document from xml file
9.If a Xml node Has Attributes
10.Convert String To XmlReader
11.Remove empty tags in the Xml string
12.Gets an appropriate System.Xml.XmlReader implementation for the supplied System.IO.Stream
www.java2java.com | Contact Us
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.