ファイルからXMLドキュメントをクエリすることができましたが、C#に渡される「id」に基づいてこのXMLスニペットから(もちろんその子ノードとともに)1つの「フィルター」ノードをプルするだけで済みます。方法:
<outBound>
<body>
<filter id="1">
<name>A. All Portfolios</name>
...
<query>
...
</query>
</filter>
<filter id="2">
<name>A. Busines Portfolios</name>
...
<query>
...
</query>
</filter>
</body>
</outBound>
ダウンロードしたいくつかのMSサンプルからL2Xコードをモデル化しましたが、フィルターのみをプルするにはどうすればよいですか?
XDocument document = XDocument.Load(Server.MapPath("~/xml/portfolioFilters.xml")); //portfolioFiltersResponse //portfolioFilters
var portFilterAll = from x in document.Descendants()
where x.Name == "filter"
select x;
var portFilt = new XElement("filter",
from x in document.Descendants("filter")
where (string)x.Element("name") == filterName
select new XElement("filter",
x.Attribute("id"),
x.Element("name"),
x.Element("type"),
x.Element("userId"),
x.Element("security"),
x.Element("queries")
));
ただし、最終結果として得られるのは、次のような追加の「フィルター」ノードです。
<filter>
<filter id="1">
<name>A. All Portfolios</name>
...
<query>
...
</query>
</filter>
</filter>
誰かがこれを少し調整して、「id」属性に基づいて必要な「フィルター」ノードのみをプルするのを手伝ってもらえますか?
ありがとうございました。ボブ