2017-08-15 18 views
0

xpathによってxml属性を削除したいが、 xml要素は将来より多くの属性を持つことができる。xpath動的属性リストから属性を削除する

html code: 
    <p class="red, blue, green">test/<p> 

xpath: 
    <xpath expr="//p[contains(@class, 'green')]" position="attributes"> 
     <attribute name="class">red, blue</attribute> 
    </xpath> 

ここで、固定テキスト "赤、青"のより良い方法はありますか?

xpathコードを再度変更することなく、今後 "<p class="red, blue, green, brown">test</p>"のようなhtmlファイルの新しいバージョンをサポートするためです。 VAR + XPath関数

+1

通常、HTMLのクラスはカンマで区切られず、空白だけで区切られます。 –

答えて

2

としてインスタンスの実際の属性リストの

concat(substring-before(@class, "green"), substring-after(@class, "green")) 

に@classの設定についてあなたも、捨てられたカンマを解決する必要がありますが、ビョルンTantauはコメントとして何実際のHTMLでは、クラスはスペースで区切られているので、結果をnormalize-spaceにラップすることができます。

+0

ありがとう赤、青、緑はタイプミス、私は "赤青緑" –

関連する問題