在 C# 中,如果我的 XMLDocument 包含:
<Hello>
<Person:"Alan" Saying:"My name is Alan">
</Hello>
那么我如何获得单一属性“说”呢?我发现代码在“<>”中包含单个属性时有效,但是在上面有多个属性的情况下它似乎不起作用。
任何帮助将不胜感激,我是 C# 新手 :)
在 C# 中,如果我的 XMLDocument 包含:
<Hello>
<Person:"Alan" Saying:"My name is Alan">
</Hello>
那么我如何获得单一属性“说”呢?我发现代码在“<>”中包含单个属性时有效,但是在上面有多个属性的情况下它似乎不起作用。
任何帮助将不胜感激,我是 C# 新手 :)
首先,这不是有效的 xml。我想你想要类似的东西
<Hello>
<Person name="Alan" Saying="My name is Alan" />
</Hello>
获得艾伦的说法最简单的方法是
XmlDocument doc = new XmlDocument();
doc.Load("filename.xml");
string saying = doc.SelectSingleNode("//Person[@name=Alan]").Attributes["saying"].Value;
有关其工作原理的更详细说明,请参阅 XPath 示例
您的 XML 应该是:
<Hello>
<Person name="Alan" saying="My name is Alan"/>
</Hello>
你要反序列化的类是:
public class Hello
{
public Person Person { get; set; }
}
public class Person
{
[XmlAttribute]
public string Name { get; set; }
[XmlAttribute]
public string Saying { get; set; }
}
如何使用它:
// Create a new XmlSerializer instance with the type of the test class
XmlSerializer SerializerObj = new XmlSerializer(typeof(Hello));
// load xml into string reader
StringReader reader = new StringReader(yourXmlString);
// Load the object saved above by using the Deserialize function
Hello LoadedObj = (Hello)SerializerObj.Deserialize(reader);
查看 MSDN 文章以获取有关如何使用XmlSerializer的更多信息