首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >“动态”修改门户列内容标记的类

“动态”修改门户列内容标记的类
EN

Stack Overflow用户
提问于 2012-06-04 19:06:21
回答 3查看 308关注 0票数 1

我需要“动态”修改portal-column-content标记中的类名,这是呈现的html代码:

代码语言:javascript
复制
<div id="portal-column-content" class="cell width-9 position-1:4">

我只想将"width-9“替换为"width-12”。

有什么建议吗?

感谢‘s

维托

EN

回答 3

Stack Overflow用户

发布于 2012-06-04 19:20:25

既然你征求了意见,下面是一些建议:

  1. Do不使用css类来表示任何具体的东西,让它表示意图。意图的具体实现来自css。例如,不要创建一个名为width-9的类,而要创建一个名为portal-column-content的类。然后,您可以将portal-column-content设置为width:9pxwidth:12em或其他任何类型。使用xslt.替换字符串并不是一件真正的事情,尽管您可以这样做。根据你的设置,有其他更好的ways.
  2. If你不能/不会遵循上面的任何建议,try
票数 2
EN

Stack Overflow用户

发布于 2012-06-04 20:22:23

此XSLT1.0转换

代码语言:javascript
复制
<xsl:stylesheet version="1.0"
 xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
 <xsl:output omit-xml-declaration="yes" indent="yes"/>
 <xsl:strip-space elements="*"/>

 <xsl:template match="node()|@*">
     <xsl:copy>
       <xsl:apply-templates select="node()|@*"/>
     </xsl:copy>
 </xsl:template>

 <xsl:template match="div[@id='portal-column-content']/@class">
  <xsl:attribute name="class">
   <xsl:value-of select=
    "substring-before(concat(.,'width-9'), 'width-9')"/>
   <xsl:value-of select="'width-12'"/>
   <xsl:value-of select="substring-after(., 'width-9')"/>
  </xsl:attribute>
 </xsl:template>
</xsl:stylesheet>

在以下示例XML文档上应用时为

代码语言:javascript
复制
<html>
    <div id="a" class="a"/>
    <div id="b" class="b"/>
    <div id="c" class="cell width-9 position-1:4"/>
    <div id="portal-column-content" class="cell width-9 position-1:4"/>
    <div id="d" class="d"/>
    <div id="e" class="cell width-9 position-1:4"/>
</html>

生成所需的正确结果(仅替换为任何'width-9'属性的class属性的div子字符串,该div属性具有字符串值为'portal-column-content'id属性

代码语言:javascript
复制
<html>
   <div id="a" class="a"></div>
   <div id="b" class="b"></div>
   <div id="c" class="cell width-9 position-1:4"></div>
   <div id="portal-column-content" class="cell width-12 position-1:4"></div>
   <div id="d" class="d"></div>
   <div id="e" class="cell width-9 position-1:4"></div>
</html>

注意到

  1. Only replaced是任何具有字符串值为'portal-column-content''width-9'属性的class属性的div子字符串。其他具有不同XSLT属性的div元素不是affected.
  2. The转换可以正确使用class属性,其字符串值不包含'width-9' --与另一个答案相比,后者的id解决方案在这种情况下用'width-12'.

完全替换了class属性的字符串值

票数 1
EN

Stack Overflow用户

发布于 2012-06-04 23:14:48

由于您已经用" diazo“标记了它,所以最简单的解决方案可能是使用重氮规则。只需使用替换、之前或之后规则将#portal-column-content的内容子项复制到正确分类的#portal-column-content的主题子项中。

如果要有选择地完成,请使用" if“表达式。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10880241

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档