Исключить узел XML - PullRequest
       1

Исключить узел XML

1 голос
/ 27 октября 2011

Я застрял в чем-то, что, вероятно, для вас может показаться простым!

В файле XML у меня есть эти узлы

<Types>
  <Pas type="1" single="Man" plural="Men" />
  <Pas type="2" single="Woman" plural="Women" description="this is a test" />
  <Pas type="3" single="Child" plural="Children" description="this is another test" />
</Types>

Затем в файле xslt есть javascript и я заполняю переменную

Details = {<xsl:for-each select="/Types/Pas">"<xsl:value-of select="@type"/>": {single:"<xsl:value-of select="@single"/>",plural:"<xsl:value-of select="@plural"/>"}

Пока все хорошо. В какой-то момент в XSLT у меня есть это

(<xsl:value-of select="$Details/@desc" />)* 

потому что я хочу показать описание в () с * в конце.

И я получаю это:

Men()*
Women(this is a test)*
Children(this is another test)*

Проблема в том, что я не хочу () * в мужчинах.

Есть ли способ исключить это?

Привет!

Ответы [ 2 ]

2 голосов
/ 27 октября 2011

Вы можете добавить оператор xsl: if следующим образом:

<xsl:if test="@description">
     (<xsl:value-of select="$Details/@desc" />)* 
</xsl:if>
1 голос
/ 27 октября 2011

Вы просто должны поместить этот конкретный кусок кода:

(<xsl:value-of select="$Details/@description" />)*

В условное утверждение, например,

<xsl:if test='current()/@description and string-length(current()/@description) > 0'>
  (<xsl:value-of select="$Details/@description" />)*
</xsl:if>

Обратите внимание, что это также заботится о пустых атрибутах.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...