2012-04-19 67 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> 
相關問題