从特定节点读取XML元素



这里是XML文件

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<MyResponse xmlns="http://mynamespace">
<Header>
<FirstName>David</FirstName>
<LastName>Duchovny</LastName>
</Header>
<Filmography>
<Films>     
</Films>
<Series>
<Serie>
<Title>X-Files</Title>
<Year>1989</Year>
</Serie>
</Series>
</Filmography>  
</MyResponse>

我只想得到这个对象的Header部分:

public class Header
{
public string FirstName { get; set; }
public string LastName { get; set; }
}

我做到了(我们不能使用反序列化(:

const string nameSapce = "http://mynamespace">
var xmlDocument = new XmlDocument();
xmlDocument.Load(@"c:tempcsv.xml");
var namespaceManager = new XmlNamespaceManager(xmlDocument.NameTable);
namespaceManager.AddNamespace("myApplication", nameSapce);
XmlNode node = xmlDocument.DocumentElement.SelectSingleNode("//myApplication:MyResponse", namespaceManager);
Console.WriteLine(node);

我在node变量中得到了这个结果:

<Header xmlns="http://mynamespace">
<FirstName>David</FirstName>
<LastName>Duchovny</LastName>
</Header>

如何将Header项提取到Header对象?

如果您尝试过LINQ to XML,您可以将其与从XML对象、中选择Header类一起使用

示例:https://learn.microsoft.com/en-us/dotnet/standard/linq/linq-xml-overview

最新更新