- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个包含 10 条不同记录的行列表。我在 C# 控制台应用程序中循环此列表并将值插入另一个列表,但它只选择第一条记录并将其插入新列表 10 次。
当我调试时,唯一值显示在循环中,但它们没有分配给左变量。
List<Job> jobList=new List<Job>();
foreach (var row in rows)
{
Job job = new Job();
job.Title = row.SelectSingleNode("//h2[@class='jobtitle']").ChildNodes[1].Attributes["title"].Value;
job.summary = row.SelectSingleNode("//span[@class='summary']").InnerText
jobList.add(job);
}
有什么想法吗?
我也使用了垃圾收集器,但仍然没有改善:
job = null;
GC.Collect();
GC.WaitForPendingFinalizers();
这是根据@Andrew 建议更新的代码,但没有用。右侧保存更新的值,但它们没有分配给左侧变量。
foreach (var row in rows)
{
try
{
var job = new Job();
var title = row.SelectSingleNode("//h2[@class='jobtitle']").ChildNodes[1].Attributes["title"].Value;
var company = row.SelectSingleNode("//span[@class='company']").InnerText.Replace("\n", "").Replace("\r", "");
var location = row.SelectSingleNode("//span[@class='location']").InnerText.Replace("\n", "").Replace("\r", "");
var summary = row.SelectSingleNode("//span[@class='summary']").InnerText.Replace("\n", "").Replace("\r", "");
job.Title = title;
job.Company = company;
job.Location = location;
job.Summary = summary;
jobList.Add(job);
job = null;
GC.Collect();
GC.WaitForPendingFinalizers();
counter++;
Status("Page# " + pageNumber.ToString() + " : Record# " + counter + " extracted");
}
catch (Exception)
{
AppendRecords(jobList);
jobList.Clear();
}
//save file
}
最佳答案
您好,您没有告诉我们 rows
变量与什么相关,但我假设这些是单个 XmlDocument 中的节点。您用于从这些节点中提取值的 XPath 表达式是不正确的,因为它们将始终导航到文档中的同一节点,而不管当前 row
节点如何。
这是一个演示问题的简单示例:-
static void Main(string[] args)
{
XmlDocument x = new XmlDocument();
x.LoadXml(@"<rows> <row><bla><h2>bob1</h2></bla></row> <row><bla><h2>bob2</h2></bla></row> </rows>");
var rows = x.GetElementsByTagName("row");
foreach (XmlNode row in rows)
{
var h2 = row.SelectSingleNode("//h2").ChildNodes[0].Value;
Console.WriteLine(h2);
}
}
输出结果为
bob1
bob1
不是您所期待的?试一试 Dot Net Fiddle 中的示例.再看看您的 XPath 表达式。您当前的表达式 //h2
是说“无论当前节点如何,都给我文档中的所有 h2
元素”。而 .//h2
会给你 h2
元素,它们是当前 row
节点的后代,这可能是你需要的。
关于C# 奇怪的问题 - 无法从右向左变量赋值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41088958/
目前我正在使用 [self presentModalViewController :newVC animated:YES] 。我想从左/右/顶部/底部呈现带有推送效果的 newViewcontroll
我正在尝试实现“带有上一个和下一个的部分幻灯片”。这些部分的标记如下: Section 1 Section 2 Section 3 Prev Next 除具有 acti
我的问题与此处提出的问题几乎相同:question 不同的是,我想从右边切换第 2 位和第 4 位数字,而不是像另一个问题中那样从左边切换。所以在我的例子中最右边的数字是 1。示例:283926.67
我是一名优秀的程序员,十分优秀!