TagBuilder 查找特定的内部元素并添加新属性 [英] TagBuilder Find Specific Inner Element and Add New Attribute

查看:21
本文介绍了TagBuilder 查找特定的内部元素并添加新属性的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个包含外部和内部元素的 TagBuilder.如何遍历到输入级别行,并将以下内容添加为新属性?

placeholder="搜索"

<div class="cont label-outside"><label>名称</label><div class="group"><input type="text" required="required" class="focusedOut"><span class="highlight"></span><span class="bar"></span><span class="close-button" onclick="clear()"></span>

如果没有 Tagbuilder/Taghelper 方法,是否应该使用 C# HTML Agility 包来编辑标签树?https://html-agility-pack.net/traversing ;如果是,如何将 Tagbuilder/或 Taghelper 输出转换为 Agility Package HTMLDocument?

*这不同于问题 添加TagBuilder 中所有标签的 CSS 类,编辑现有属性,因为这要求编辑现有属性.这里的问题是关于添加新属性.请参阅下面的文章:

为什么一个问题多问多答不好吗

解决方案

对于您的任务,您可以使用 HtmlAgilityPack.

使用HtmlAgilityPack,您可以使用XPath 查询来选择必要的节点并向该节点添加标签.

要选择节点,您可以使用 SelectNodes 方法:

var htmlDoc = new HtmlDocument();htmlDoc.LoadHtml(html);var nodes = htmlDoc.DocumentNode.SelectNodes("//input[contains(@class, 'focusedOut')]");

要添加属性,您可以使用属性集合:

node.Attributes.Add("placeholder","Search");

I have a TagBuilder which contains Outer and Inner Elements. How do I traverse to the Input level line , and Add the following as an New attribute?

placeholder="Search"

<div class="form-group">
    <div class="cont label-outside">
        <label>Name</label>
        <div class="group">
            <input type="text" required="required" class="focusedOut">
            <span class="highlight"></span>
            <span class="bar"></span>
            <span class="close-button" onclick="clear()"></span>
        </div>
    </div>
</div>

If no Tagbuilder/Taghelper method exists, should C# HTML Agility package be utilized to edit tag tree? https://html-agility-pack.net/traversing ; If yes, how to convert Tagbuilder/ or Taghelper Output into Agility Package HTMLDocument?

*This is different from question Add CSS Class to All Tags in TagBuilder, Edit Existing Attribute as this asks to Edit existing attribute. Question here is about Adding New Attribute. See article below :

Why isn't it good to ask multiple questions and answers in one question

解决方案

For your task you can use HtmlAgilityPack.

Using HtmlAgilityPack you can use XPath Query to select necessary nodes and add tag to this node.

To select nodes you can use SelectNodes method:

var htmlDoc = new HtmlDocument();
htmlDoc.LoadHtml(html);
var nodes = htmlDoc.DocumentNode.SelectNodes("//input[contains(@class, 'focusedOut')]");

To add attribute you can use Attributes Collection:

node.Attributes.Add("placeholder","Search");

这篇关于TagBuilder 查找特定的内部元素并添加新属性的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
C#/.NET最新文章
热门教程
热门工具
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆