我的目标是为XDocument创建一个查询,如果正确的日期位于属性strikePrice
中,则该查询仅返回symbol
的值。
示例XDocument中的symbol
有一个代码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/>
我可以使用以下代码从symbol
的字符串中检索日期:
string startingString = "AAPL";
string symbol = "AAPL131221C0024500";
string date = symbol.Substring(startingString.Length, 6))
我可以使用以下查询检索所有罢工:
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();
如果正确的日期位于属性strikePrice
中,如何将两者结合起来并构建一个仅返回symbol
值的查询?
答案 0 :(得分:1)
如何使用XPath代替并以这种方式查询值。
var nodes = doc.SelectNodes("//query/results/optionsChain/option[starts-with(@symbol, '--lookup value--')]/StrikePrice");
尚未对上述内容进行测试,但对XmlDocument非常有用。
以下是在XDocument http://msdn.microsoft.com/en-us/library/bb675197.aspx上使用XPathEvaluate的示例