我在C#中有一个代码,我想提取下面的值(下面的HTML代码中的文本“我想要这个文本”)。我重新格式化了HTML代码,使其易于阅读。
<div class="paste-copy-url" style="margin:0 0 0 0;">
<h4>My Stats:</h4>
<div class="line">
<div class="wrap-input">
<input onclick="this.select();" value="I want this text" readonly="readonly">
</div>
</div>
<h4>Website Link:</h4>
<div class="line">
<div class="wrap-input"><input onclick="this.select();" value="Some value" readonly="readonly">
</div>
</div>
</div>
我试过的代码(它给我的文字:“网站链接:”):
var myvaluetoextract = htmlDocument.DocumentNode.SelectSingleNode("//div[@class='paste-copy-url']");
我做错了什么?我可以使用这种方法来获取该元素(页面中只有一个div类的实例)吗?
答案 0 :(得分:4)
var input = htmlDocument.DocumentNode
.SelectSingleNode("//div[@class='paste-copy-url']//div[@class='wrap-input']/input");
var yourText = input.Attributes["value"].Value;
答案 1 :(得分:0)
你可以这样做:
var myvaluetoextract = htmlDocument.DocumentNode.SelectSingleNode("//div[@class='paste-copy-url']//input");
var value = myvaluetoextract.GetAttributeValue("value", null);
//input
表示您以递归方式搜索input
子树中的div
个元素。 GetAttributeValue
是一个永远不会失败的助手,即使该属性不存在(在这种情况下,如果将返回第二个传递的参数 - 这里是null
)