读取XML值Webservice

时间:2012-08-30 11:17:45

标签: c# asp.net xml web-services

我想在运行时读取xml,而不将其保存在路径上

在我搜索之后,我发现,在控制台应用程序中,我需要使用Console.Out来显示结果

xmlSerializer.Serialize(Console.Out, patient);

在Windows / Web应用程序中,我们需要设置路径,如

StreamWriter streamWriter = new StreamWriter(@"C:\test.xml");

但我需要阅读xml而不保存它,我正在使用Webserive,我需要阅读它并做出有效或无效的决定

我希望我能清楚地定义它......

5 个答案:

答案 0 :(得分:0)

使用XmlDocument对象 有几种方法可以加载XML,您可以使用XmlDocument.Load()并在其中指定您的URL,或使用XmlDocument.LoadXml()从字符串加载XML。

答案 1 :(得分:0)

您可以使用XmlDocument.LoadXml类来阅读收到的xml。无需将其保存到磁盘。

try
{
    XmlDocument doc = new XmlDocument();
    doc.LoadXml(receivedXMLStr);
    //valid xml
}
catch (XmlException xe)
{ 
    //invalid xml
}

答案 2 :(得分:0)

使用Linq2Xml ..

XElement doc;
try
{
doc=XElement.Load(yourStream);
}
catch
{
//invalid XML
}

foreach(XElement node in doc.Descendants())
{
node.Value;//value of this node
nodes.Attributes();//all the attributes of this node
}

答案 3 :(得分:0)

您需要使用Deserialize选项来读取xml。按照以下步骤实现它,

  1. 创建目标类。它的结构应该代表xml输出。
  2. 创建类后,使用以下代码将xml加载到目标对象

    TargetType result = null;
    XmlSerializer worker = new XmlSerializer(typeof(TargetType));
    result = worker.Deserialize("<xml>.....</xml>");
    
  3. 现在,xml被加载到对象'result'中并使用它。

答案 4 :(得分:0)

感谢大家的回复,我希望在不将其保存在本地路径上的情况下提交我的XML,因为节省了创建许多XML。

最后我找到了在内存流上从类中加载XML的解决方案,我将这个解决方案变得非常容易并且优化

XmlDocument doc = new XmlDocument();
System.Xml.Serialization.XmlSerializer serializer2 = new System.Xml.Serialization.XmlSerializer(Patients.GetType());
System.IO.MemoryStream stream = new System.IO.MemoryStream();
serializer2.Serialize(stream, Patients);
stream.Position = 0;
doc.Load(stream);