使用C#

时间:2015-10-13 07:10:09

标签: c# xml linq parsing

我需要将下面的信息分开,只取出XML,我正在努力找出最有效的方法。我不确定从删除前3行和获取X​​ML DTD开始的方法。在我脑海中,我认为最好的方法是忽略/删除3行,直到使用'<'打开XML标记。但我不确定我是否应该把它放在一根巨大的绳子里?老实说,任何事情都会有所帮助,我不知道要把这个坏孩子搞得一团糟,而且我确信它不会像我要做的那么难,但我被卡住了。非常感谢你!

编辑:这是一个.log文件

这是示例文本文档:

VCS (1.0.11.111): [10/9/2015 12:00:02 AM]
POST https://ex.sample.com/samp/x/sample
Content-Type: application/x-www-form-urlencoded
<?xml version="1.0" encoding="UTF-8"?>
    <command name="sample name_" signature="some stuff" address="sample.com">
    <param name="CurrentVersion">1111</param>
    <param name="MotherboardName">Dell Inc. PowerEdge R420</param>
</command>
HTTP/1.1 200 OK

2 个答案:

答案 0 :(得分:0)

最简单的方法是获取<的第一个索引,并将>的最后一个索引子串到您的文件中,然后让.Net Xml Parser完成其工作。

但我不确定这是否是最快的方式。

XML已解析为课程here

答案 1 :(得分:0)

使用正则表达式怎么样?试试这个:

        var regex = new Regex(@"<\?xml.*\?>(?<Xml>.*)HTTP/", RegexOptions.Singleline);

        var match = regex.Match(inputString);

        if (match.Success)
        {
            var xmlResult = match.Groups["Xml"].Value;
        }

您将在变量xmlResult中拥有所有xml。