Выберите значение атрибута - PullRequest
0 голосов
/ 23 февраля 2011
<Surcharge>
  <Rentalplus desc="Rental plus">75.00</Rentalplus> 
  <Gasket desc="Seals and gasket">50.00</Gasket>
  <WearandTear desc"Wear and Tear">100.00</WearandTear>
</Surcharge>

из вышеупомянутого xml я хочу извлечь "desc".Имейте в виду, у меня есть разные имена тегов под узлом.

Спасибо за помощь

Ответы [ 4 ]

2 голосов
/ 23 февраля 2011

Как насчет минималистского решения?

//@desc

Или точнее

/Surcharge//@desc

Или еще точнее

/Surcharge/*[self::Rentalplus|self::Gasket|self::WearandTear]/@desc
1 голос
/ 23 февраля 2011
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:output method="text"/>
    <xsl:template match="/*">
        <xsl:apply-templates select="*/@desc"/>
    </xsl:template>
</xsl:stylesheet>

Эксплуатирует встроенные правила.Результат будет:

Rental plusSeals and gasketWear and Tear
0 голосов
/ 23 февраля 2011
* +1000 * Используйте

/*/*/@desc

Выбирает все атрибуты desc всех дочерних элементов верхнего элемента документа XML.

Никогда не используйте сокращение //, если структура документа хорошо известна . Использование аббревиатуры // может привести к значительно медленной оценке, поскольку вызывает обход всего XML-документа.

0 голосов
/ 23 февраля 2011

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

//@desc

См. Синтаксис с сайта w3schools http://www.w3schools.com/xsl/xpath_syntax.asp

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