如何在xsl中使用ip地址

时间:2012-10-14 06:50:42

标签: jquery xslt

我正在使用xsl从xsl生成html。我必须在css类的名称中使用ip地址,如下所示:

<td><div title="delete" >
    <xsl:attribute name="class">
         delete_link_<xsl:value-of select="destinationIp"/>
    </xsl:attribute>    
    <img class="row-remover" src="/media/img/remove.png"/>
</div></td>

我有这个jquery函数:

 $('.delete_link_<xsl:value-of select="destinationIp"/>').click( function() {
      // do some thing here
 });

但是因为ip地址中有'点',上面的代码不起作用。当我删除xml文件中的destinationIp标记点时,它的工作原理。所以我觉得'dot'有问题。任何让它成功的想法?非常感谢:)

3 个答案:

答案 0 :(得分:2)

只是删除这些点可能会导致错误的后果

考虑这两个IP地址:

13.8.123.4

138.12.3.4

当删除点时,我们会在两种情况下获得完全相同的结果:

1381234

我认为您希望为每个IP地址设置不同的类。如果是这样,请不要删除这些点,而是将其替换为合法字符

<td><div title="delete" class="delete_link{translate(destinationIp,'.','_')}">
    <img class="row-remover" src="/media/img/remove.png"/>
</div></td>

使用此代码为上面的两个IP地址生成两个不同的类:

delete_link13_8_123_4

delete_link138_12_3_4

请注意,使用AVT( Attribute Value Template ),原始代码如何缩小两次(从6到3行)。

答案 1 :(得分:1)

嘿,你会像这样逃避ip地址:在每个特殊字符之前使用\\,这样就可以了。

工作演示 http://jsfiddle.net/gubfj/

<强>样品

127\\.0\\.0\\.1

https://groups.google.com/forum/?fromgroups#!topic/jquery-en/ugchaJObJFo

  

在每个特殊字符前使用两个反斜杠。

     

jQuery选择器中的反斜杠会转义下一个字符。但是你   需要两个,因为反斜杠也是转义字符   JavaScript字符串。第一个反斜杠逃脱了第二个,给出了   你在你的字符串中有一个实际的反斜杠 - 然后逃脱了下一个   jQuery的字符。

希望这符合原因:)

<强>码

$('.delete127\\.0\\.0\\.1').click( function() {
     alert("you click ==> " + $(this).html());
      // do some thing here
 });​

答案 2 :(得分:1)

您可以使用translate()函数从字符串中删除点字符。

例如......

<xsl:value-of select="translate( destinationIp, '.', '')"/>

参见:

  1. http://zvon.org/xxl/XSLTreference/Output/function_translate.html
  2. (XSLT 1.0)http://www.w3.org/TR/xpath/#function-translate
  3. (XSLT 2.0)http://www.w3.org/TR/xpath-functions/#func-translate