Я только начинаю узнавать о XLS, просто изменяю свой XML ниже. В частности, я хотел бы скопировать значение элемента <description>
и заменить его на атрибут name
его родителя <game>
.XSL-копирование дочернего элемента в родительский атрибут
Источник XML:
<?xml version="1.0"?>
<menu>
<game name="$100000P" index="" image="">
<description>$100,000 Pyramid (1988)</description>
<cloneof></cloneof>
<crc></crc>
<manufacturer>Box Office, Inc.</manufacturer>
<year>1988</year>
<genre>Strategy</genre>
<rating></rating>
<enabled>Yes</enabled>
</game>
<game name="$takes" index="" image="">
<description>High Stakes by Dick Francis (1986)</description>
<cloneof></cloneof>
<crc></crc>
<manufacturer>Mindscape, Inc.</manufacturer>
<year>1986</year>
<genre>Adventure</genre>
<rating></rating>
<enabled>Yes</enabled>
</game>
<game name="007Licen" index="" image="">
<description>007 - Licence to Kill (1989)</description>
<cloneof></cloneof>
<crc></crc>
<manufacturer>Domark Ltd.</manufacturer>
<year>1989</year>
<genre>Driving</genre>
<rating></rating>
<enabled>Yes</enabled>
</game>
...
Желаемая Выход:
<?xml version="1.0"?>
<menu>
<game name="$100,000 Pyramid (1988)" index="" image="">
<description>$100,000 Pyramid (1988)</description>
<cloneof></cloneof>
<crc></crc>
<manufacturer>Box Office, Inc.</manufacturer>
<year>1988</year>
<genre>Strategy</genre>
<rating></rating>
<enabled>Yes</enabled>
</game>
<game name="High Stakes by Dick Francis (1986)" index="" image="">
<description>High Stakes by Dick Francis (1986)</description>
<cloneof></cloneof>
<crc></crc>
<manufacturer>Mindscape, Inc.</manufacturer>
<year>1986</year>
<genre>Adventure</genre>
<rating></rating>
<enabled>Yes</enabled>
</game>
<game name="007 - Licence to Kill (1989)" index="" image="">
<description>007 - Licence to Kill (1989)</description>
<cloneof></cloneof>
<crc></crc>
<manufacturer>Domark Ltd.</manufacturer>
<year>1989</year>
<genre>Driving</genre>
<rating></rating>
<enabled>Yes</enabled>
</game>
Я попытался следующий XSL, но это не казалось, делать какие-либо изменения. На самом деле я почесываю голову прямо сейчас.
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="game">
<game name="{description}">
<xsl:apply-templates select="@*|node()"/>
</game>
</xsl:template>
</xsl:stylesheet>
Спасибо за ответ. Я попытался использовать оба предложенных шаблона xls, и результат: –
Xml version = "1.0"?> $ 100,000 Пирамида (1988) Box Office, Inc. Стратегия Да <название игры = "High Stakes Дик Фрэнсис (1986)" индекс = "" IMAGE = ""> High Stakes Диком Francis (1986) Mindscape, Inc. Приключения Да <название игры = "007 - Лицензия на убийство (1989)" индекс = "" изображение = ""> 007 - Лицензия на убийство (1989) Domark ООО Вождение Да –
Теперь он копирует элемент описания в атрибут имени игрового элемента. Однако все остальные элементы под игровым элементом, казалось, просто исчезли. –