首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >XmlNode xpath

XmlNode xpath
EN

Stack Overflow用户
提问于 2013-12-31 08:21:02
回答 1查看 86关注 0票数 0

我自己有一个小的C#控制台应用程序,它使用System.Xml名称空间和HTMLAgilityPack库,我的程序试图从特定的网页中抓取产品变体信息,但我面临着一个不寻常的问题。我的程序似乎跳过了某个HTML标记?

下面是我下载的HTML代码

代码语言:javascript
复制
<option value="0">Select a size</option>
<option value="5">686 x 1981mm, 35mm Thick: &pound;143.01</option>
<option value="7">762 x 1981mm, 35mm Thick: &pound;143.01</option>
<option value="9">838 x 1981mm, 35mm Thick: &pound;143.01</option>

以下是我解析上述HTML的代码

代码语言:javascript
复制
if (vars != null && vars.Count > 0)
{
    int loc = 1;

    foreach (XmlNode item in vars)
    {
        // Get the <option> ... </option> contents
        string name = item.SelectSingleNode(string.Format("//option[{0}]", loc)).GetInnerTextFromNode();
        string value = item.SelectSingleNode(string.Format("//option[{0}]", loc)).GetAttributeFromNode("value");
        loc++;
    }
}

由于某种原因,我的代码跳过了第二个标记,所以我最终得到了3个结果,而不是4个,忽略了它,就好像它不存在一样。有人知道为什么会这样吗?

如果我的描述很糟糕,我道歉!

EN

回答 1

Stack Overflow用户

发布于 2013-12-31 08:58:40

我可以肯定地告诉你,子节点的索引-你用loc索引的东西-是从零开始的。我不确定为什么在没有更多信息的情况下会跳过持续的第二个节点。

但是你有没有尝试过使用loc=0呢?

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20849798

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档