XSLT получить значение атрибутов - PullRequest
0 голосов
/ 16 ноября 2018

Это мой входной XML:

<?xml version="1.0" encoding="utf-8"?>
<Q Sequence="21" xsi:noNamespaceSchemaLocation="xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <Response>
    <Message ID="507"></Message>
  </Response>
</Q>

И вот выход, который я пытаюсь получить из XSLT:

<?xml version="1.0" encoding="UTF-8"?>
<C>
    <Response>
        <ID>507</ID>
        <Sequence>21</Sequence>
    </Response>
</C>

Мой XSLT не дает ожидаемого результата:

<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:msxsl="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="msxsl">
    <xsl:output method="xml" indent="yes"/>

  <xsl:template match="/Q">
    <C>
      <Response>
        <Id>
          <xsl:value-of select="/Message/@ID" />
        </Id>
      </Response>
    </C>
  </xsl:template>

</xsl:stylesheet>

Это далеко от того, чего я пытаюсь достичь, но лучше ли это сделать?В настоящее время это не помещает идентификатор в узел.Как это может быть сделано?

1 Ответ

0 голосов
/ 16 ноября 2018

Попробуйте следующим образом:

<xsl:template match="/Q">
    <C>
        <Response>
            <Id>
                <xsl:value-of select="Response/Message/@ID" />
            </Id>
            <Sequence>
                <xsl:value-of select="@Sequence" />
            </Sequence>
        </Response>
    </C>
</xsl:template>

Примечание : путь, начинающийся с /, является абсолютным путем, начинающимся с корневого узла.

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