私は村の馬鹿に私を任命します。単純なLinq to XMLクエリは機能しません
なぜこの仕事しません:
foreach (XElement clientField in _clientXml.Descendants("row").Descendants())
{
var newFieldName =
from sourceField in _sourceEntries.Descendants("Field")
where (string)sourceField.Attribute("n") == (string)clientField.Attribute("n")
select new
{
FieldName = ((string) sourceField.Attribute("n")),
AcordRef = ((string) sourceField.Attribute("m"))
};
foreach (var element in newFieldName)
{
Console.WriteLine("Field Name: {0}",
element.FieldName, element.AcordRef);
}
}
私のソースXMLファイルはXElement.Load(myFileName)がロードされています。デバッグでは、clientFieldには属性n = "ポリシー番号"があります。 _sourceEntries.Descendants( "Field")の最初の要素には、属性n = "ポリシー番号"もあります。実際、_clientXml.Descendants( "row")の各要素。Descendants()に_sourceEntries.Descendants( "Field")に一致する行があります。そして、私は選択が怠惰であることを知ることができるだけのことを知っているので、デバッグではConsole.WriteLineブロックを見ます。何を試しても、newFieldNameは空のセットです。
は、念のため、ここではクライアントファイルの最初の要素です:
<Column_0 n="Policy Number">ABC000123</Column_0>
そして、ここで_sourceEntriesコレクションの拳要素です:私は、単純なものになるだろう知っている
<Field n="Policy Number" c="1" l="" s="" cd="" m="1805" f="" />
しかし、私は何が間違っているのか分かりません。
ありがとうございました。
ランディ
Console.WriteLine "Field Name:{0}"は引数が1つだけですが、 }、値{1} "? –
_clientXmlの@EoRaptor13は、descendatノードの書かれた行またはRowですか? –
ジュリアン、行、小文字。 Alexi、申し訳ありませんが、第2引数をWritelineに追加するのを忘れてしまいました。私は2つ持っていたが、それがうまくいかなかったときには、ただ1つ書くだけで簡単にしようとした。まだ喜びはありません。 ありがとうございました。 – EoRaptor013