Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/haskell/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用XmlReader读取XML文件_C#_Asp.net_Xml - Fatal编程技术网

C# 使用XmlReader读取XML文件

C# 使用XmlReader读取XML文件,c#,asp.net,xml,C#,Asp.net,Xml,我有一个这样的xml文件 <response> <status>ok</status>\r\n <number>125698</number> </response> 但没有像“ok125698”这样的输出。 但我只想要“125698”这个。 如何读取它?在第二次调用AppendLine之前,您没有重置output,导致output包含(至少)两行:“ok”和“125698”。然后将orde

我有一个这样的xml文件

<response>    
    <status>ok</status>\r\n
    <number>125698</number>
    </response>
但没有像“ok125698”这样的输出。 但我只想要“125698”这个。
如何读取它?

在第二次调用
AppendLine
之前,您没有重置
output
,导致
output
包含(至少)两行:“ok”和“125698”。然后将
orderNo
设置为此字符串,替换掉
\r\n
,生成“ok125698”


可能您想使用不同的
输出
变量或清除其内容?

之所以发生这种情况,是因为您在向输出变量追加状态值后,正在向其追加订单号:

reader.ReadToFollowing("status");
output.AppendLine(reader.ReadElementContentAsString());

reader.ReadToFollowing("number");
output.AppendLine(reader.ReadElementContentAsString());
这段代码比需要的要长得多。请试试这个:

using (XmlReader reader = XmlReader.Create(new StringReader(Response)))
{
    reader.ReadToFollowing("response");

    reader.ReadToFollowing("status");
    string status = reader.ReadElementContentAsString();
    if (status == "ok")
    {
        reader.ReadToFollowing("number");
        string orderNo = reader.ReadElementContentAsString();
        HttpContext.Current.Session["orderNo"] = orderNo;
    }
}

我已经编辑了你的标题。请参见“”,其中的共识是“不,他们不应该”。为什么XML文件中有
\r\n
using (XmlReader reader = XmlReader.Create(new StringReader(Response)))
{
    reader.ReadToFollowing("response");

    reader.ReadToFollowing("status");
    string status = reader.ReadElementContentAsString();
    if (status == "ok")
    {
        reader.ReadToFollowing("number");
        string orderNo = reader.ReadElementContentAsString();
        HttpContext.Current.Session["orderNo"] = orderNo;
    }
}