Обратите внимание, что в этом коде я пытаюсь проверить наличие элемента rdfs: range перед тем, как выбрать его. Я делаю это, чтобы исключить возможное исключение с использованием NULL во время выполнения.Как проверить наличие элемента с XElement?
private readonly XNamespace rdf = "http://www.w3.org/1999/02/22-rdf-syntax-ns#";
private readonly XNamespace rdfs = "http://www.w3.org/2000/01/rdf-schema#";
private readonly XElement ontology;
public List<MetaProperty> MetaProperties
{
get
{
return (from p in ontology.Elements(rdf + "Property")
select new MetaProperty
{
About = p.Attribute(rdf + "about").Value,
Name = p.Element(rdfs + "label").Value,
Comment = p.Element(rdfs + "comment").Value,
RangeUri = p.Elements(rdfs + "range").Count() == 1 ?
p.Element(rdfs + "range").Attribute(rdf + "resource").Value :
null
}).ToList();
}
}
Это своего рода давало мне покоя, что я действительно хочу сделать что-то вроде этого:
p.HasElements(rdfs + "range") ?
p.Element(rdfs + "range").Attribute(rdf + "resource").Value :
null
Однако нет HasElement(string elementName)
доступный метод.
Я думаю, я мог бы создать расширение метода для этого, но мне интересно, есть ли что-то уже встроенное или есть ли другие способы сделать это?
Да, это опрятно. Мне нравится, думаю, я буду использовать его для проверки других свойств. –