我有这个 HTML 标签:
<div id="23a521b6-5a90-4257-9ee3-17a2cbe8a8fc" jquery17208007497985234224="13" jquery172080076755224="4"></div>
我需要帮助来选择属性名称为 jquery* 的 div 进行清理,最终结果将是:
<div id="23a521b6-5a90-4257-9ee3-17a2cbe8a8fc"></div>
谢谢,伙计们
我有这个 HTML 标签:
<div id="23a521b6-5a90-4257-9ee3-17a2cbe8a8fc" jquery17208007497985234224="13" jquery172080076755224="4"></div>
我需要帮助来选择属性名称为 jquery* 的 div 进行清理,最终结果将是:
<div id="23a521b6-5a90-4257-9ee3-17a2cbe8a8fc"></div>
谢谢,伙计们
不确定您为此使用了什么技术,但要使用 XSLT 摆脱这些属性,请执行以下操作:
<xsl:transform xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:template match="@*|node()">
<xsl:copy><xsl:apply-templates select="@*|node()"/></xsl:copy>
</xsl:template>
<xsl:template match="@*[starts-with(local-name(), 'jquery')]"/>
</xsl:transform>
我会选择所有以字符串开头的属性jquery
,然后使用 AgilityPack 删除它们:
var doc = new HtmlDocument();
doc.LoadHtml(html);
var attributes = doc.DocumentNode
.Descendants()
.SelectMany(n => n.Attributes.Cast<HtmlAttribute>())
.Where(a => a.Name.StartsWith("jquery"))
.ToArray();
foreach (var attribute in attributes)
attribute.Remove();
这会给你类似的东西:
<div id="23a521b6-5a90-4257-9ee3-17a2cbe8a8fc"></div>