【问题标题】:HTMLAgilityPack How to parse a specific attribute in HTML ContentsHTMLAgilityPack 如何解析 HTML 内容中的特定属性
【发布时间】:2016-09-13 21:34:53
【问题描述】:

谁能帮我解析一个特定的属性(如果我理解正确的话)。下面是一个示例。

<div class="buy-container">
<form action="/content/action" method="post">
<button class="product-buy">buy</button>
<input type="hidden" name="ActionAddToBasket">
<input type="hidden" value="198300" name="ContentNodeID">
<input type="hidden" value="778768" name="ContentObjectID">
<input type="hidden" value="full" name="ViewMode">
</form>
</div>
我想从上面的 html 数据中解析 where value = "778768" 。 请指教。非常感谢。

【问题讨论】:

  • 以上数据是如何呈现/创建的?我在想 String.IndexOf("\"778768\"") 但也许我什么都没看到?
  • 这个解析操作需要的结果是什么?

标签: c# html html-agility-pack


【解决方案1】:

你可以这样做。

  var val = doc
              .DocumentNode
              .SelectSingleNode("//input[@type='hidden' and @name='ContentObjectID']")
              .Attributes["value"].Value;

查看fiddle demo

【讨论】:

  • 非常感谢 Hari 的热心帮助。
【解决方案2】:

试试这个:

var html = @"
<div class=""buy-container"">
<form action=""/content/action"" method=""post"">
<button class=""product-buy"">buy</button>
<input type=""hidden"" name=""ActionAddToBasket"">
<input type=""hidden"" value=""198300"" name=""ContentNodeID"">
<input type=""hidden"" value=""778768"" name=""ContentObjectID"">
<input type=""hidden"" value=""full"" name=""ViewMode"">
</form>
</div>
";

var doc = new HtmlDocument();
doc.LoadHtml(html);

var input = doc.DocumentNode.SelectSingleNode("//input[@name = 'ContentObjectID']");

// your desired value
var val = input.GetAttributeValue("value", "");

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-23
    • 2013-12-22
    • 2012-06-20
    • 1970-01-01
    相关资源
    最近更新 更多