LINQ TO XML查询数据的奇怪问题???!!!
-
2009年3月13日 7:12XML源文件格式如下:
<?xml version="1.0" encoding="utf-8"?>
<WebTest Name="Verify TOU" Id="19b9d5ec-b333-49e1-b29e-89f89fb0ec95" Owner="" Priority="0" Enabled="True" CssProjectStructure="" CssIteration="" Timeout="0" WorkItemIds="" xmlns="http://microsoft.com/schemas/VisualStudio/TeamTest/2006" Description="" CredentialUserName="" CredentialPassword="" PreAuthenticate="True" Proxy="" StopOnError="False" Test="abcdefg">
<Items>
<Request Method="GET" Version="1.1" Url="{{WebServer1}}/" ThinkTime="3" Timeout="300" ParseDependentRequests="True" FollowRedirects="True" RecordResult="True" Cache="False" ResponseTimeGoal="0" Encoding="utf-8" ExpectedHttpStatusCode="0" ExpectedResponseUrl="" RequestID="1" PageName="No Name" IsTakeScreenShot="False">
<CorrelationExtractionRules>
<ExtractionRule Classname="Microsoft.VisualStudio.TestTools.WebTesting.Rules.ExtractText, Microsoft.VisualStudio.QualityTools.WebTestFramework, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" VariableName="QueryStringParam1.wreply" DisplayName="" Description="">
<RuleParameters>
<RuleParameter Name="StartsWith" Value="?wreply=" />
<RuleParameter Name="EndsWith" Value=""" />
<RuleParameter Name="Index" Value="0" />
<RuleParameter Name="IgnoreCase" Value="False" />
<RuleParameter Name="UseRegularExpression" Value="False" />
<RuleParameter Name="HtmlDecode" Value="True" />
<RuleParameter Name="Required" Value="False" />
</RuleParameters>
</ExtractionRule>
</CorrelationExtractionRules>
<QueryStringParameters>
<QueryStringParameter Name="mkt" Value="en-US" RecordedValue="en-US" CorrelationBinding="" UrlEncode="False" UseToGroupResults="False" />
</QueryStringParameters>
</Request>
<Request Method="GET" Version="1.1" Url="{{WebServer1}}/terms.aspx" ThinkTime="0" Timeout="300" ParseDependentRequests="True" FollowRedirects="True" RecordResult="True" Cache="False" ResponseTimeGoal="0" Encoding="utf-8" ExpectedHttpStatusCode="0" ExpectedResponseUrl="" RequestID="2" PageName="Legal Page" IsTakeScreenShot="True">
<QueryStringParameters>
<QueryStringParameter Name="wreply" Value="http%3a%2f%2ffuwamid.live-int.com%2fDefault.aspx%3fmkt%3den-US" RecordedValue="http%3a%2f%2ffuwamid.live-int.com%2fDefault.aspx%3fmkt%3den-US" CorrelationBinding="{{QueryStringParam1.wreply}}" UrlEncode="False" UseToGroupResults="False" />
</QueryStringParameters>
<Validation Name="ManualVerify" xmlns="">
<Case ID="1005" Description="Verify all string of Privacy page are localized." />
</Validation>
</Request>
</Items>
<ContextParameters>
<ContextParameter Name="WebServer1" Value="http://fuwamid.live-int.com" />
</ContextParameters>
<ValidationRules>
<ValidationRule Classname="Microsoft.VisualStudio.TestTools.WebTesting.Rules.ValidateResponseUrl, Microsoft.VisualStudio.QualityTools.WebTestFramework, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" DisplayName="Response URL" Description="Validates that the response URL after redirects are followed is the same as the recorded response URL. QueryString parameters are ignored." Level="Low" />
</ValidationRules>
</WebTest>
问题是,我现在需要利用LINQ技术来获得Items节点,理论上来说如下代码就能达到要求
XDocument doc=XDocument.Load("aaa.xml");
XElement itemsElement=doc.Root.Element("Items");
以下方法全部试了个遍,返回都是空的:
(1)
IEmurable<XElement> items=doc.Root.Elements("Items");
foreach(brabarbar)
{
//无效
}
(2)
IEmurable<XElement> items=doc.Root.Descsends("Items");
foreach(brabarbar)
{
//还是无效
}- 已移动 邹俊才Moderator 2011年3月4日 15:47 (发件人:2011微软MSDN论坛线下活动互动讨论区(挨踢人士甘苦讨论区))
全部回复
-
2009年3月17日 9:30取XML数据有很多种方法,你换一种试一下
My blog: http://blog.csdn.net/dotfun http://dotfun.cnblogs.com
My contact: QQ:372900288 E-mail:372900288@qq.com msn:sellnet007@hotmail.com
-
2012年4月30日 6:38版主
你好,用下面的语句可以直接获得你想要的节点,括号里面是正则表达式:
XmlNode xmlNode = doc.SelectSingleNode("//*[@Title='" + currentTitle + "']");
我们要把爱心传递给更多需要帮助的人。
博客:http://terryfeng.cnblogs.com
微博:http://t.sina.com.cn/terryfeng
个人:http://www.terryfeng.com- 已标记为答案 冯瑞涛Moderator 2012年4月30日 6:38

