获取xdocument中的节点属性

本文关键字:节点 属性 xdocument 获取 | 更新日期: 2023-09-27 18:24:36

我有一个xml文档,它将是动态的。我获取节点没有问题,但我想为每个节点获取他的属性。我所尝试的一切都没有得到结果。

我的Xml:

<?xml version="1.0" encoding="UTF-8" standalone="no" ?> <Questionnaire>   <clientID>1036</clientID>   <QuestForm Desc="דוגמא" ID="1" Info="הסבר לגבי השאלון לדוגמא">
    <Subject Desc="כללי" ID="1" Info="הסבר לנושא כללי" NP="N" Num="1" TableRows="3">
      <Title Desc="מופע 1" ID="1"></Title>
      <Title Desc="מופע 2" ID="2"></Title>
      <Title Desc="מופע 3" ID="3"></Title>
      <Question Desc="טקסט חופשי" ID="1" Type="ט"></Question>
      <Question Desc="תאריך" FromDate="00/00/0000" ID="2" ToDate="31/12/2999" Type="ת"></Question>
      <Question Desc="שעה" FromTime="00:00:00" ID="3" ToTime="24:00:00" Type="ש"></Question>
      <Question Desc="מספר" FromN="1.00" ID="4" IntN="0.00" ToN="10.00" Type="מ"></Question>
      <Question Desc="בחירה" ID="5" Type="ב">
        <Answer Desc="תשובה 1" ID="1"></Answer>
        <Answer Desc="תשובה 2" ID="2"></Answer>
      </Question>
      <Question Desc="שפות דיבור בחירה מרובה" ID="6" Type="ר">
        <Answer Desc="עברית" ID="1"></Answer>
        <Answer Desc="אנגלית" ID="2"></Answer>
        <Answer Desc="רוסית" ID="3"></Answer>
      </Question>
    </Subject>
    <Subject Desc="חו&quot;ל" ID="2" Info="הסבר לנושא חול" NP="N" Num="2">
      <Question Desc="נסיעות לחול" FromN="0.00" ID="1" IntN="0.00" ToN="0.00" Type="מ"></Question>
      <Question Desc="מדינות מועדפות" ID="2" Type="ר">
        <Answer Desc="ארצות הברית" ID="1"></Answer>
        <Answer Desc="אנגליה" ID="2"></Answer>
        <Answer Desc="אוסטרליה" ID="3"></Answer>
        <Answer Desc="רוסיה" ID="4"></Answer>
      </Question>
    </Subject>
    <Subject Desc="נושא חברתי" ID="3" NP="N" Num="3">
      <Question Desc="כמה חברים יש לך" FromN="1.00" ID="1" IntN="0.00" ToN="100.00" Type="מ"></Question>
      <Question Desc="באיזה רשת חברתית אתה משתמש" ID="2" Type="ר">
        <Answer Desc="FACEBOOK" ID="1"></Answer>
        <Answer Desc="LINKEDIN" ID="2"></Answer>
        <Answer Desc="TWITER" ID="3"></Answer>
      </Question>
      <Question Desc="נולדת בארץ" ID="3" Type="ל"></Question>
      <Question CondID="3" Desc="ישוב לידה" ID="4" Type="ט"></Question>
    </Subject>   </QuestForm>
    <Muamad Email="ORANI4U@GMAIL.COM" Event="28" ID="36130" Name="א אורן"></Muamad>
</Questionnaire>

我想获得所有主题及其属性的代码:

IEnumerable<QuestionnnaireSubject> subjects = from input in xml.Descendants("Subject")
    select new QuestionnnaireSubject()
    {                                         
        Description = 
        ID = 
    }; 
return subjects.ToList();

获取xdocument中的节点属性

要获取元素的属性,请使用XElement.Attribute(XName)XElement.Attributes():

var subjects = from subjectElement in xml.Descendants("Subject")
               select new QuestionnnaireSubject()
               {                                         
                   Description = (string)subjectElement.Attribute("Desc")
                   ID = (int)subjectElement.Attribute("ID").Value
               }; 

用途:

  • XElement.Attribute(XName)通过名称获取属性
  • XElement.Attributes()来获取元素的属性集合

您还拥有:

  • XElement.Elements()来获取元素的子元素的集合
  • XElement.Elements(XName)以获取具有指定名称的子元素的集合