XMLファイルがあります。このファイルには、いくつかのノードとその子が同じ名前と属性を持つことがあります。XMLで選択されたノードの空の出力がある
<?xml version="1.0"?>
<PurchaseOrder PurchaseOrderNumber="99503" OrderDate="1999-10-20">
<Address Type="Shipping">
<Name>Ellen Adams</Name>
<Street>123 Maple Street</Street>
<City>Mill Valley</City>
<State>CA</State>
<Zip>10999</Zip>
<Country>USA</Country>
</Address>
<Address Type="Billing">
<Name>Tai Yee</Name>
<Street>8 Oak Avenue</Street>
<City>Old Town</City>
<State>PA</State>
<Zip>95819</Zip>
<Country>USA</Country>
<Address Type="Buying">
<Name>Ellen Adams</Name>
</Address>
<Address Type="transporting">
<Name>Tai Yee</Name>
<Street>8 Oak Avenue</Street>
</Address>
</Address>
<DeliveryNotes>Please leave packages in shed by driveway.</DeliveryNotes>
<Items>
<Item PartNumber="872-AA">
<ProductName>Lawnmower</ProductName>
<Quantity>1</Quantity>
<USPrice>148.95</USPrice>
<Comment>Confirm this is electric</Comment>
</Item>
<Item PartNumber="926-AA">
<ProductName>Baby Monitor</ProductName>
<Quantity>2</Quantity>
<USPrice>39.98</USPrice>
<ShipDate>1999-05-21</ShipDate>
</Item>
</Items>
</PurchaseOrder>
Address
のノードだけを属性として出力したいと考えています。問題は、Address
ノードを子として持ついくつかの入れ子ノードがあることです。子供へのアクセスを取得するAddress
私の問題です。再び、それは名前Address
の子供を持っている場合、私は私にこのノードを与えたくない、私は次のコード
public void find_node(string ID_node)
{
XElement root = XElement.Load("PurchaseOrder.xml");
IEnumerable<XElement> address =
from el in root.Elements("Address")
where (string)el.Attribute("Type") == "Buying"
select el;
foreach (XElement el in address)
{
var newElement = new XElement(
el.Name.LocalName,
el.Attributes(),
el.Elements().Where(o => o.Name.LocalName != "Address")
);
Console.WriteLine(newElement.ToString());
}
}
に行ったように、このコードのための所望の出力は
<Address Type="Buying">
<Name>Ellen Adams</Name>
</Address>
だろうけど私は上記の関数を実行しているときに空の出力を持っています。
私はこの機能のために空の出力を乗せてもらえますか?
あなたは何であるか私たちを見ることができます希望の出力? –
@HariPrasad Q. –