Как связать определенный атрибут из XML с помощью LINQ? - PullRequest
0 голосов
/ 27 мая 2010

у меня есть n xml, как это:

<Profile>
  <Interviewer id="111">
    <Questions>
      <Question qid="1" Catid="1" CatagoryName="General">
        <Video url="http://10.1.8.45/BIGWeb/videofiles/user1/I1C1Vid1.mp4" />
        <Quest text="Tell me about yourself by intone ?" />
        <videofile text="I1C1Vid1.mp4" />
      </Question>
      <Question qid="2" Catid="1" CatagoryName="General">
        <Video />
        <Quest text="What are your interestsone ?" />
        <videofile text="I1C1Vid2.mp4" />
      </Question>
      <Question qid="3" Catid="1" CatagoryName="General">
        <Video />
        <Quest text="What is you hobbyone ?" />
        <videofile text="I1C1Vid3.mp4" />
      </Question>

    </Questions>
  </Interviewer>
  <Interviewer id="222">
    <Questions>
      <Question qid="1" Catid="1" CatagoryName="General">
        <Video url="http://10.1.8.45/BIGWeb/videofiles/user1/I1C1Vid1.mp4" />
        <Quest text="Tell me about yourself by intone ?" />
        <videofile text="I2C1Vid1" />
      </Question>
      <Question qid="2" Catid="1" CatagoryName="General">
        <Video />
        <Quest text="What are your interestsone ?" />
        <videofile text="I2C1Vid2" />
      </Question>
      <Question qid="3" Catid="1" CatagoryName="General">
        <Video />
        <Quest text="What is you hobbyone ?" />
        <videofile text="I2C1Vid3" />
      </Question>
      <Question qid="4" Catid="1" CatagoryName="General">
        <Video />
        <Quest text="Your studiesone?" />
        <videofile text="I2C1Vid4" />
      </Question>
      <Question qid="5" Catid="1" CatagoryName="General">
        <Video />
        <Quest text="What you want to be in the futureone ?" />
        <videofile text="I2C1Vid5" />
      </Question>
      <Question qid="6" Catid="1" CatagoryName="General">
        <Video />
        <Quest text="What are your interests ?" />
        <videofile text="I2C1Vid6" />
      </Question>
      <Question qid="7" Catid="1" CatagoryName="General">
        <Video />
        <Quest text="What is your hobby ?" />
        <videofile text="I2C1Vid7" />
      </Question>
  </Questions>
  </Interviewer>
</profile>

Я хочу видео с атрибутом URL и соответствующий видеофайл и текст квеста. Примечание: я не хочу нулевые значения видео в моем запросе LINQ ......

это я сделал

var books = from Interviewer in xmlDocument.Descendants("Interviewer")
            where Interviewer.Attribute("url").Value !=null
        select new Data
{
ques=(string)Interviewer.Element("Quest").Attribute("text").Value,
videoid = (string)Interviewer.Element("videofile").Attribute("text").Value,
videourl = (string)Interviewer.Element("Video").Attribute("url").Value

};
return books.ToList();

не работает PLS HELP ... спасибо в ADVANCE .....................

1 Ответ

0 голосов
/ 27 мая 2010

Я не могу сказать, что вы пытаетесь сделать в вашем запросе LINQ, у вас есть вещи в выборке, которых не будет в наборе результатов. Ваша линия:

where Interviewer.Attribute("url").Value !=null

приведет к тому, что интервьюер будет содержать только те элементы, которые имеют атрибут url, где в вашем выборе у вас есть

(string)Interviewer.Element("videofile").Attribute("text").Value
(string)Interviewer.Element("Quest").Attribute("text").Value

Интервьюер не будет содержать элементы видеофайла и квеста, поскольку они не имеют атрибута url. Единственное, что будет в интервьюере, это ваши видео элементы, так как они являются единственными элементами, имеющими атрибут url.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...