преобразование xml - добавление атрибутов к предыдущему узлу в зависимости от текущего узла - PullRequest
1 голос
/ 22 июля 2009

У меня есть ejb-jar.xml, у которого нет тега 'id' в теге.

Как лучше всего это исправить? Может ли XSLT использоваться для этого?

<session>
  <ejb-name>EJB1</ejb-name>
  <local-home>x.E1LH</local-home>
  <local>x.E1L</local>
  <ejb-class>x.E1EJB</ejb-class>
  <session-type>Stateless</session-type>
  <transaction-type>Container</transaction-type>
</session>

Должен быть переписан как:

<session id="EJB1"> <!--ejb-name gets added as an "id" attribute -->
  <ejb-name>EJB1</ejb-name>
  <local-home>x.E1LH</local-home>
  <local>x.E1L</local>
  <ejb-class>x.E1EJB</ejb-class>
  <session-type>Stateless</session-type>
  <transaction-type>Container</transaction-type>
</session>

1 Ответ

1 голос
/ 22 июля 2009

xslt, конечно, может это сделать ... но это действительно зависит от того, что вам нужно сделать.

Что-то вроде (не проверено)

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

<xsl:template match="session">
    <session id="{ejb-name}">
        <xsl:apply-templates select="@* | node()"/>
    </session>
</xsl:template>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...