Есть ли способ вывести имена элементов и атрибутов из документа XML? - PullRequest
1 голос
/ 11 октября 2009

Я пытаюсь использовать XSL для вывода всех уникальных имен элементов и атрибутов. Не их значения, а их имена.

Итак, с учетом XML:

<item id="12">
  <price>12.00</price>
  <author>Name</author>
  <desc>Description</desc>
</item>

Я хочу показать, что есть элементы item, price, author, desc. В дополнение к этому я хочу знать, что есть атрибут 'id'.

Есть идеи, как это сделать? Или статьи, которые я могу прочитать об этом? Это вообще возможно?

Спасибо
Леви

Ответы [ 2 ]

2 голосов
/ 11 октября 2009

Я сам не часто их использовал, но эти функции должны помочь вам: Функции XPath на узлах . В частности, посмотрите на name() и local-name(). Поскольку они работают на узлах, не должно быть проблем с их использованием как для элементов, так и для атрибутов.

1 голос
/ 11 октября 2009

Попробуйте это:

<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

  <xsl:key name="names" match="//* | //@*" use="name()"/>
  <xsl:template match="/">
    <xsl:for-each select="(//* | //@*)[count(key('names', name())) = 1]">
      <xsl:value-of select="name()" /><br />
    </xsl:for-each>
  </xsl:template>

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