2012-04-19 56 views
1

我有这样的HTML标签:如何在属性名称中选择具有通配符的元素?

<div id="23a521b6-5a90-4257-9ee3-17a2cbe8a8fc" jquery17208007497985234224="13" jquery172080076755224="4"></div> 

我需要帮助,选择该div其中属性名是jQuery的*作清理,最终的结果将是:

<div id="23a521b6-5a90-4257-9ee3-17a2cbe8a8fc"></div> 

谢谢, 查帕斯

回答

0

我会选择所有与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> 
1

不知道你使用的是什么技术,这一点,但摆脱使用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> 
相关问题