[英]Deserialize XML to Object Using Class Decorators ([XmlElement])
我有一個看起來像這樣的XML ...
<SET>
<ENTITY>
<HEADER>
<ELEMENT TYPE = "a"></ELEMENT>
<ELEMENT TYPE = "b"></ELEMENT>
<ELEMENT TYPE = "c"></ELEMENT>
</HEADER>
<FOO>
<BAR TYPE = "X">12345</BAR>
</FOO>
</ENTITY>
</SET>
我知道要獲取元素或屬性,我可以執行以下操作:
[Serializable()]
[XmlRoot("SET")]
public class Set
{
[XmlElement("ENTITY")]
public List<Entity> Entity { get; set; }
}
public class Entity
{
[XmlElement("FOO")]
public string Foo; //Returns "12345"
[XmlAttribute("Type")]
public string FooType; //returns "X"
}
我需要的是只能返回類型為“ B”的ELEMENT的值。 我不要“ A”或“ C” ...
有某種可以完成的功能...
public class Header
{
[XmlElement("ELEMENT",Type = "B")]
public string Element;
}
由於只需要一部分數據,因此使用Linq2Xml會更容易。
LINQ:
XDocument doc = XDocument.Parse(xmlstring);
var xElem = doc.Descendants("ELEMENT")
.Where(e => e.Attribute("TYPE")?.Value == "b")
.FirstOrDefault();
Xpath的:
var xElem = doc.XPathSelectElement("//ELEMENT[@TYPE='b']");
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.