[英]Read XML file with XmlReader
我有一個這樣的xml文件。
<response>
<status>ok</status>\r\n
<number>125698</number>
</response>
如果狀態為“確定”,我想讀取數字。 所以這是我的代碼
using (XmlReader reader = XmlReader.Create(new StringReader(Response)))
{
reader.ReadToFollowing("response");
reader.MoveToFirstAttribute();
reader.ReadToFollowing("status");
output.AppendLine(reader.ReadElementContentAsString());
}
OrderResponse = output.ToString();
OrderResponse = OrderResponse.Replace("\r\n", "");
if (OrderResponse == "ok")
{
using (XmlReader reader = XmlReader.Create(new StringReader(Response)))
{
reader.ReadToFollowing("response");
reader.MoveToNextAttribute();
reader.ReadToFollowing("number");
output.AppendLine(reader.ReadElementContentAsString());
}
string orderNo = output.ToString();
orderNo = orderNo.Replace("\r\n", "");
HttpContext.Current.Session["orderNo"] = orderNo;
但orderNo輸出類似“ ok125698”。 但是我只想要“ 125698”。 怎么看?
您沒有在第二次調用AppendLine
之前重置output
,導致output
至少包含兩行:“ ok”和“ 125698”。 然后將orderNo
設置為此字符串,替換\\r\\n
,生成“ ok125698”。
也許您是要使用其他output
變量或清除其內容?
之所以發生這種情況,是因為您已經將狀態值附加到了輸出變量之后,就將其添加到了輸出變量中:
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;
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.