我有一个包含外部和内部元素的 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/