1

次の xml ファイルを検討してください。

<UPDATES xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<EXAMPLES>
    <EXAMPLE>
        <EXAMPLEID>1234</EXAMPLEID>
        <TYPES>
            <TYPE>
                <TYPEID>0</TYPEID>
                <FILES>
                    <FILE>
                        <FILENAME>fileName1</FILENAME>
                        <URL>http://somehwere</URL>
                        <MD5>2d774faa197fe87a49db0709048b82f0</MD5>
                    </FILE>
                    <FILE>
                        <FILENAME>fileName2</FILENAME>
                        <URL>http://somehwere</URL>
                        <MD5>1232132135a4dfseaf321daf51eaf321</MD5>
                    </FILE>
                </FILES>
            </TYPE>
        </TYPES>
    </EXAMPLE>
    <EXAMPLE>
        <EXAMPLEID>5678</EXAMPLEID>
        <TYPES>
            <TYPE>
                <TYPEID>0</TYPEID>
                <FILES>
                    <FILE>
                        <FILENAME>fileName3</FILENAME>
                        <URL>http://somehwere</URL>
                        <MD5>1232132135a4dfseaf321daf51eaf321</MD5>
                    </FILE>
                    <FILE>
                        <FILENAME>fileName4</FILENAME>
                        <URL>http://somehwere</URL>
                        <MD5>1232132135a4dfseaf321daf51eaf321</MD5>
                    </FILE>
                </FILES>
            </TYPE>
        </TYPES>
    </EXAMPLE>
</EXAMPLES>

ファイル名と md5 を抽出したいのですが、特定の exampleid だけを対象としています。

これまでのところ、必要な情報を抽出するために、次の情報を取得しています。

var files = xDocument.Descendants("FILE")
                                 .Select(
                                     node => new {FileName = node.Element("FILENAME"), Hash = node.Element("MD5")})
                                 .Distinct();

これは、タグを含む情報を返します。node.Element("FILENAME").Value を実行すると、null 参照例外が発生します。

私が問題を抱えているのは Where 句を追加しようとしているときです。

exampleid 1234 に関連付けられたファイル名と md5 が返されるように指定するにはどうすればよいですか?

4

1 に答える 1