我有一个包含外部和内部元素的 TagBuilder。如何遍历输入级别行,并将以下内容添加为新属性?
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>

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

*这与问题 Add CSS Class to All Tags in TagBuilder, Edit Existing Attribute 不同,因为它要求编辑现有属性。这里的问题是关于添加新属性。请参阅下面的文章:

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

最佳答案

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

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

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

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

要添加属性,您可以使用 Attributes Collection :
node.Attributes.Add("placeholder","Search");

关于c# - TagBuilder 查找特定的内部元素并添加新属性,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57121099/

10-11 01:10