Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/324.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 文件。多亏了这些帮助,大家都很在行,但XML有一个更大的问题。遗憾的是,你不能把手表放在这些元素上,看哪一个元素坏了…@fullNelson是的,这就是我的意思,在你以后的过程中需要正确处理它。缺少的元素将为空,因此是否要指定默认值?过滤掉它们?要过滤掉这_C#_Linq - Fatal编程技术网

C# 文件。多亏了这些帮助,大家都很在行,但XML有一个更大的问题。遗憾的是,你不能把手表放在这些元素上,看哪一个元素坏了…@fullNelson是的,这就是我的意思,在你以后的过程中需要正确处理它。缺少的元素将为空,因此是否要指定默认值?过滤掉它们?要过滤掉这

C# 文件。多亏了这些帮助,大家都很在行,但XML有一个更大的问题。遗憾的是,你不能把手表放在这些元素上,看哪一个元素坏了…@fullNelson是的,这就是我的意思,在你以后的过程中需要正确处理它。缺少的元素将为空,因此是否要指定默认值?过滤掉它们?要过滤掉这,c#,linq,C#,Linq,文件。多亏了这些帮助,大家都很在行,但XML有一个更大的问题。遗憾的是,你不能把手表放在这些元素上,看哪一个元素坏了…@fullNelson是的,这就是我的意思,在你以后的过程中需要正确处理它。缺少的元素将为空,因此是否要指定默认值?过滤掉它们?要过滤掉这些属性,可以添加一个Where语句,将这些属性都不为空的元素保留下来。您可以使用null合并运算符指定空字符串或其他默认字符串,而不是null:Title=(string)item.Element(“Title”)??String.Empty。


文件。多亏了这些帮助,大家都很在行,但XML有一个更大的问题。遗憾的是,你不能把手表放在这些元素上,看哪一个元素坏了…@fullNelson是的,这就是我的意思,在你以后的过程中需要正确处理它。缺少的元素将为空,因此是否要指定默认值?过滤掉它们?要过滤掉这些属性,可以添加一个
Where
语句,将这些属性都不为空的元素保留下来。您可以使用null合并运算符指定空字符串或其他默认字符串,而不是null:
Title=(string)item.Element(“Title”)??String.Empty
。这样做的好处是,您可以将其作为原始查询的一部分,而不是执行额外的迭代。谢谢,JohnD,有了这个简化的XML,它将正确运行,我在这里没有正确表示XML的其他方面,以便任何人都能清楚地了解可能的错误。再一次,我必须使用一个淡化的例子来说明我正在使用的XML的级别。谢谢,约翰,有了这个简化的XML,它将正确运行,我必须在这里正确表示XML的其他方面,以便任何人都能清楚地知道可能的错误。同样,我不得不使用一个淡化的示例来说明我正在使用的XML的级别。
<FEED>
<FEED_HEADER>
    <FEED_NAME>foo</FEED_NAME>
    <FEED_CODE>foobar123</FEED_CODE>
</FEED_HEADER>
<FEED_CONTENT>
    <DOC>
        <PUB_DATE>2011-12-01</PUB_DATE>
        <TITLE>Monkey Bombs</TITLE>
    </DOC>
    <DOC>
        <PUB_DATE>2011-12-10</PUB_DATE>
        <TITLE>A Silly Hat</TITLE>
    </DOC>
    <DOC>
        <PUB_DATE>2011-12-25</PUB_DATE>
        <TITLE>Wind Blows Up My Skirt</TITLE>
    </DOC>
</FEED_CONTENT>
</FEED>
public List<Review> GetReviews(string filePath, FileInfo file, DirectoryInfo directory, XElement xmlDoc)
    {
        IEnumerable<BookReview> reviews = null;
        try
        {
            reviews = from item in xmlDoc.Descendants("DOC")
                      select new BookReview()
                      {
                          PubDate = item.Element("PUB_DATE").Value,
                          Title = item.Element("TITLE").Value,
                      };
        }
        catch (Exception ex)
        {
            logger.Info(string.Format("Error while parsing file {0}\n", file.Name) + " " + ex.Message.ToString());
        }

        return reviews.Cast<Review>().ToList();
    }
reviews = from item in xmlDoc.Element("FEED_CONTENT").Descendants("DOC")
    select new BookReview()
    {
        PubDate = item.Element("PUB_DATE").Value,
        Title = item.Element("TITLE").Value
    }
};
PubDate = (string)item.Element("PUB_DATE"),
Title = (string)item.Element("TITLE")
        public class Review { }
        public class BookReview : Review
        {
            public string PubDate;
            public string Title;

        }
        public static void Main()
        {
            string xml = @"
<FEED>
<FEED_HEADER>
    <FEED_NAME>foo</FEED_NAME>
    <FEED_CODE>foobar123</FEED_CODE>
</FEED_HEADER>
<FEED_CONTENT>
    <DOC>
        <PUB_DATE>2011-12-01</PUB_DATE>
        <TITLE>Monkey Bombs</TITLE>
    </DOC>
    <DOC>
        <PUB_DATE>2011-12-10</PUB_DATE>
        <TITLE>A Silly Hat</TITLE>
    </DOC>
    <DOC>
        <PUB_DATE>2011-12-25</PUB_DATE>
        <TITLE>Wind Blows Up My Skirt</TITLE>
    </DOC>
</FEED_CONTENT>
</FEED>";   // NOTE: I closed  the <FEED> element!
            var xmlDoc = XDocument.Parse(xml);
            IEnumerable<BookReview> reviews = null;
            try
            {
                reviews = from item in xmlDoc.Descendants("DOC")
                          select new BookReview()
                          {
                              PubDate = item.Element("PUB_DATE").Value,
                              Title = item.Element("TITLE").Value,
                          };
            }
            catch (Exception ex)
            {
                //...
            }

            foreach (var review in reviews)
            {
                Console.WriteLine("{0}, {1}", review.PubDate, review.Title);
            } 
            var reviews2 = reviews.Cast<Review>().ToList();

            Console.ReadLine();
        }
2011-12-01, Monkey Bombs
2011-12-10, A Silly Hat
2011-12-25, Wind Blows Up My Skirt