在C#中如果我要包含XMLDocument:
<Hello>
<Person:"Alan" Saying:"My name is Alan">
</Hello>
然后我如何获得单个属性“Saying”?我发现代码在单个属性包含在“&lt;&gt;”中时有效但是,如果上面有多个属性,它似乎不起作用。
任何帮助都会非常感激,我更喜欢C#新手:)
答案 0 :(得分:4)
首先,这是无效的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 Examples
答案 1 :(得分:1)
您的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);
有关如何使用XmlSerializer
的详细信息,请查看MSDN文章