C# 带参数的LINQXML查询

C# 带参数的LINQXML查询,c#,xml,linq,linq-to-xml,C#,Xml,Linq,Linq To Xml,我的目标是为XDocument创建一个查询,如果正确的日期位于属性符号中,则该查询仅返回删除线的值 示例XDocument中的符号有一个tickerAAPL,日期131221,键入C,并以可变位数结束 示例XDocument: <query> <results> <optionsChain> <option symbol="AAPL131221C00245000" type="C">

我的目标是为XDocument创建一个查询,如果正确的日期位于属性
符号中,则该查询仅返回
删除线的值

示例XDocument中的
符号
有一个ticker
AAPL
日期
131221
,键入
C
,并以可变位数结束

示例XDocument:

<query>
    <results>
        <optionsChain>
            <option symbol="AAPL131221C00245000" type="C">    
                <strikePrice>245</strikePrice>
                <lastPrice>299.04</lastPrice>
                <change>0</change>
                <changeDir/>
                <bid>314.1</bid>
                <ask>317</ask>
                <vol>1</vol>
                <openInt>5</openInt>
            <option/>
        <optionChain/>
        <optionsChain>
        ....
        <optionsChain/>
    <results/>
<query/>
我可以通过以下查询检索所有罢工:

XDocument Doc = Example XDocument;
List<string> list = new List<string>();
        list = Doc.Descendants("results")
                .Descendants("optionsChain")
                .Descendants("option")
                .Elements("strikePrice")
                .Select(d => d.Value)
                .ToList();
XDocument Doc=示例XDocument;
列表=新列表();
列表=文档子体(“结果”)
.后代(“期权链”)
.后代(“选择权”)
.要素(“删除线价格”)
.选择(d=>d.Value)
.ToList();

如果正确的日期位于属性
符号
中,我如何将两者结合起来,构建一个只返回
删除日期
值的查询

改用XPath并以这种方式查询值怎么样

var nodes = doc.SelectNodes("//query/results/optionsChain/option[starts-with(@symbol, '--lookup value--')]/StrikePrice");
尚未测试上述内容,但对XmlDocument很有用


下面是一个示例,通过“Correct Date”在XDocument

上使用xpatheevaluate,您是指要搜索的硬编码值吗?是的,我将有一个包含所需日期的字符串变量。我当前可以获取所有日期和所有删除日期。但是现在我想在我选择了一个特定的日期之后得到所有的罢工。那是什么返回类型?它会给你一个可以迭代的节点集合。不是在开发机器上,但是如果您使用var value=,您应该能够看到i get:System.Xml.Linq.XDocument不包含SelectNodes的定义。我使用的是“XDocument”,而不是“XmlDocument”。我可以转换它吗?用XDocument示例更新了我的答案
var nodes = doc.SelectNodes("//query/results/optionsChain/option[starts-with(@symbol, '--lookup value--')]/StrikePrice");