display: -moz-inline-stack; display: inline-block; zoom: 1; *display: inline;
Foo Hack - кросс-браузерная поддержка для стилей inline-block (2007-11-19) .
Вот подход к запросу:
XElement yourDoc = XElement.Load("your file name.xml");
bool hasPhone = (
from user in yourDoc.Descendants("user")
where (int)user.Attribute("id") == 2
select user.Descendants("phone").Any()
).Single();
Возможно, есть лучший и изящный способ сделать это (я еще не очень хорошо знаком с Linq-to-XML), но этот фрагмент кода должен работать:
XElement yourDoc = XElement.Load("your file name.xml");
foreach (XElement user in yourDoc.Descendants("user"))
{
foreach(XElement contact in user.Descendants("contactDetails"))
{
var phone = contact.Descendants("phone");
bool hasPhone = (phone.Count() > 0);
}
}
Он в основном перечисляет все "пользовательские" узлы в вашем XML, а затем все узлы "contactDetails" внутри пользовательского узла, а затем проверьте, есть ли под ними какие-либо подузлы "phone".
The .Descendants ()
вызов вернет список узлов XElement, и если нет ни одного из запрашиваемых вами типов, .Count ()
в этом списке ( IEnumerable
) будет вернуть 0 - это то, что проверяет мой код.
Marc