僅供參考,這是非常類似於我的最後一個問題:Is there a faster way to check for an XML Element in LINQ to XML?有沒有更快的方法檢查LINQ to XML中的XML元素,並解析一個bool?
當前我使用以下擴展方法,我使用LINQ to XML檢索元素的布爾值。它使用Any()來查看是否有任何具有給定名稱的元素,如果存在,它將分析bool的值。否則,它返回false。這個方法的主要用途是當我將XML解析爲C#對象時,所以當一個元素不在時,我不希望任何東西爆炸。我可以改變它來嘗試解析,但現在我假設如果元素在那裏,那麼解析應該成功。
有沒有更好的方法來做到這一點?
/// <summary>
/// If the parent element contains a element of the specified name, it returns the value of that element.
/// </summary>
/// <param name="x">The parent element.</param>
/// <param name="elementName">The name of the child element to check for.</param>
/// <returns>The bool value of the child element if it exists, or false if it doesn't.</returns>
public static bool GetBoolFromChildElement(this XElement x, string elementName)
{
return x.Elements(elementName).Any() ? bool.Parse(x.Element(elementName).Value) : false;
}
你可以使用正則表達式來達到特定的目的。返回re.compile('。* <'+ elementName +'>。*')。match(xml.ToString()) – 2010-01-14 17:06:48