c# - 在 C# 中将以下 StreamReader 结果转换为 XML 时出错
问题描述
if (response.StatusCode == HttpStatusCode.OK)
{
using (Stream stream = response.GetResponseStream())
{
using (StreamReader reader = new StreamReader(stream))
{
res= reader.ReadToEnd();
XmlDocument doc = new XmlDocument();
doc.XmlResolver = null;
doc.Load(res);
}
Console.WriteLine(res);
}
}
在上面的代码中,我在 res 变量中得到了以下结果。
如何从给定的结果中获取 TID 属性。
<!DOCTYPE RESULT SYSTEM "http://today.com/email/viewemail.dtd">
<RESULT REQID="16006914462">
<MID SUBMITDATE="2018-08-02 12:25:37" ID="1" TAG="null" TID="40293189378" />
</RESULT>
当我尝试转换上述结果时,XmlDocument
它会抛出异常
路径中的非法字符。
解决方案
您也可以使用 LinqXMl 来做您需要的事情。在下面的示例中,我从文本文件加载 xml 以模拟 xml 响应。接受 XML 字符串的 XDocument.Load 方法有一个重载。
XDocument xdoc = XDocument.Load("C:\\test.xml");
XElement resultNode = xdoc.Elements().First().Elements().FirstOrDefault();
var tidVale = resultNode.Attributes().First(a => a.Name == "TID");
然后,您可以相应地访问属性。
希望有帮助
推荐阅读
- c# - particleSystem.startSize 与particleSystem.main.startSize
- swift - 为什么我不能得到 NSArray 的值?它总是返回零值。Swift 4.3
- kubernetes - Kubernetes 在错误的时间运行 cronjob
- r - 在 R 中使用 ggpubr 将帧和样本大小 (n) 添加到散点图
- javascript - 排序和更新状态属性数组?- 反应JS
- http - 分隔符防御中的SP和HT是什么意思
- flutter - 使用不显示 MediaQuery 错误的上下文调用 MediaQuery.of(),即使应用程序中未使用 MediaQuery
- yii2 - HTML Purifier - 如何保持 css "margin-left: calc(25%)"
- c - 在 C 中,如何在没有指针的情况下更改局部范围变量?
- spring-boot - 如何在 JMX 上使用 SpringBoot 执行器