膨大な数の要素と関連する属性を表すXSDファイルが提供されました。xsd.exeを使用してCSクラスを作成しました。
問題は、作成されるxmlに一部またはすべての要素と属性が含まれる可能性があることです。
XMLの例:
<App action="A" id="1" validate="yes"><ProductType id="5885"/><SpecType id="221"/><Qty>1</Qty><PartType id="7212"/><Part>456789</Part></App>
<App action="A" id="2" validate="yes"><ProductType id="5883"/><Qty>1</Qty><PartType id="7211"/><Part>132465</Part></App>
それから私のコードで:
protected static void ImportProduct(string filename)
{
var counter = 0;
var xSerializer = new XmlSerializer(typeof(ProductList));
var fs = new FileStream(String.Format("{0}{1}", FilePath, filename), FileMode.Open);
var reader = XmlReader.Create(fs);
var items = (ProductList)xSerializer.Deserialize(reader);
foreach (var record in items.App)
{
counter++;
Console.Write(String.Format("{0}{1}", record.ProductType.id, Environment.NewLine));
Console.Write(String.Format("{0}{1}", record.Part.Value, Environment.NewLine));
*if (!record.SpecType.Value.Equals(null))
Console.Write(String.Format("{0}{1}", record.SpecType.id, Environment.NewLine));
else
Console.Write(String.Format("{0}{1}", "No SpecType!", Environment.NewLine));
if (counter == 10)
break;
}
}
したがって、私の質問は、上記のスター付き(*)行に従って、空の/存在しない要素を確認する方法です。
xsdまたはソースXMLファイルは主要メーカーによって作成されているため、変更することはできません。
さらに情報が必要な場合はお知らせください。
ありがとう!ブラッド