Как Вы охраняете для исключений Нулевой ссылки в Linq К Xml?

Попробуйте это:

if (isset(

Попробуйте это:

[110]POST['submit'])) { $valgt =

Попробуйте это:

[110]POST['Filmarkiv']; echo "<section id='valgtfilm'> <h1> " .$filmarkiv [$valgt]['titel']. " </h1> <p> " .$filmarkiv [$valgt]['besk']. "</p> <P> " .$filmarkiv [$valgt]['skues']. " </p> <img src=' " .$filmarkiv [$valgt]['img']. " ' alt='Posterplakat' /> <img src=' " .$filmarkiv [$valgt]['rull']. " ' alt='Posterplakat' /> <a href=' ".$filmarkiv[$valgt]['imdblink']." ' id='imdblink'>Link til ImdB</a> </section>"; };
12
задан kitsune 27 April 2009 в 10:04
поделиться

2 ответа

РЕДАКТИРОВАТЬ: Это было ясно написано давным-давно - в эти дни я определенно пошел бы с актерами согласно ответу Игоря.

Самый простой способ был бы что-то вроде:

var page = (from tabElement in extensionsDoc.Descendants("page")
            let idAttribute = tabElement.Attribute("id")
            where idAttribute != null 
                  && idAttribute.Value == tabId.ToString()
            select tabElement).SingleOrDefault();

В качестве альтернативы вы можете написать метод расширения для XElement :

public static string AttributeValueOrDefault(this XElement element,
                                             string attributeName)
{
    XAttribute attr = element.Attribute(attributeName);
    return attr == null ? null : attr.Value;
}

, а затем использовать:

var page = (from element in extensionsDoc.Descendants("page")
            where element.AttributeValueOrDefault("id") == tabId.ToString()
            select element).SingleOrDefault();

Или использовать точечную нотацию:

var page = extensionsDoc.Descendants("page")
             .Where(x => x.AttributeValueOrDefault("id") == tabId.ToString())
             .SingleOrDefault();

(было бы целесообразно вызвать tabId.ToString () однажды заранее, кстати, а не для каждой итерации.)

28
ответ дан 2 December 2019 в 03:32
поделиться

Я раньше видел, как другие люди использовали прямое приведение к строке; Я не знаю, более или менее эффективно он, чем то, что предлагал Джон, но мне очень нравится синтаксис.

var page = extensionsDoc.Descendants("page")
             .Where(x => (string)x.Attribute("id") == tabId.ToString())
             .SingleOrDefault();

Кто угодно может исправить это, если в моем мышлении есть какой-то изъян; Я новичок в LINQ.

является более или менее эффективным, чем то, что предлагал Джон, но мне очень нравится синтаксис.

var page = extensionsDoc.Descendants("page")
             .Where(x => (string)x.Attribute("id") == tabId.ToString())
             .SingleOrDefault();

Кто угодно может исправить это, если в моем мышлении есть изъян; Я новичок в LINQ.

является более или менее эффективным, чем то, что предлагал Джон, но мне очень нравится синтаксис.

var page = extensionsDoc.Descendants("page")
             .Where(x => (string)x.Attribute("id") == tabId.ToString())
             .SingleOrDefault();

Кто угодно может исправить это, если в моем мышлении есть какой-то изъян; Я новичок в LINQ.

3
ответ дан 2 December 2019 в 03:32
поделиться
Другие вопросы по тегам:

Похожие вопросы: