現在、XML ドキュメントをループしています。以下に構造を示します(データは変更されています)
<activity date="2013-07-05T06:42:37" name="view" host="00.000.00.000">
<user id="EU-user@user.co.uk" name="U user" memberType="E" />
<storageObject docId="0000-0000-0000" name="2. Extract Lease - 31.07.2003" size="1903885" fileExtension="pdf">
<cabinet name="Company Intranet">NG-FGW7XX1Y</cabinet>
<Matter>0000</Matter>
<Client>X01659</Client>
<Author>Joe Bloggs</Author>
</storageObject>
</activity>
私がする必要があるのは、各要素をループしactivity
、各子要素と属性に保持されている情報を出力することです。現在、私はこれを持っています
var root = doc.Root;
foreach (XElement el in root.Elements().DescendantsAndSelf())
{
if (el.Value.Equals(""))
{
//don't print anything, just move along, nothing to see here
}
else
{
Console.WriteLine(el.Value);
}
//Console.WriteLine(" Attributes:");
if (el.HasAttributes == true)
{
foreach (XAttribute attr in el.Attributes())
{
Console.WriteLine(attr.ToString());
// Console.WriteLine(el.Elements("id"));
}
}
}
要素がどこで終了するかについて明確な区別がないことを除いて、これはある程度機能しactivity
ます(つまり、終了するとテキストの壁が印刷され、要素を区別できるようにしたいです)。また、cabinet
要素を全体で 2 回出力しますが、ループして個別に出力する前に、子要素の連結バージョンとして出力します。以下に示すように
NG-FGW7XX1Y0000X01659Joe Bloggs
date="2013-07-05T06:42:37"
name="view"
host="00.000.00.000"
id="EU-user@user.co.uk"
name="U user"
memberType="E"
NG-FGW7XX1Y0000X01659Joe Bloggs
docId="0000-0000-0000"
name="2. Extract Lease - 31.07.2003"
size="1903885"
fileExtension="pdf"
NG-FGW7XX1Y
name="Company Intranet"
0000
X01659
Joe Bloggs
個々のactivity
要素をループして、すべての要素と属性を連結された行なしで出力できるようにする必要があります。Console.WriteLine("------");
また、各アクティビティがどこで終了するかをコンソールで簡単に確認できるように、a を挿入できるようにしたいと考えています。助言がありますか?
要素をループしている理由は、一部のレコードには、他の方法では見つからない追加の要素があるためです。
編集:これは次のようになります
date="2013-07-05T06:42:37"
name="view"
host="00.000.00.000"
id="EU-user@user.co.uk"
name="U user"
memberType="E"
docId="0000-0000-0000"
name="2. Extract Lease - 31.07.2003"
size="1903885"
fileExtension="pdf"
NG-FGW7XX1Y
name="Company Intranet"
0000
X01659
Joe Bloggs