Мне трудно найти ответ на следующий вопрос, который кажется довольно распространенным, поэтому я, должно быть, упускаю что-то фундаментальное. Не могли бы вы помочь мне?
С учетом придуманной схемы XML, примера ввода XML и примера XSLT, приведенного ниже, используемого для преобразования XML в HTML. Как мне установить атрибуты внутри тегов? Например <div id=HouseNumber>
, <input type="checkbox" id=Zipcode>
и т. Д.?
Примечание: Отсутствие кавычек вокруг HouseNumber и Zipcode нацелено. Я пытаюсь поместить значение этих атрибутов из входных данных XML в id = "", for = "", name = "" и т. Д.
Спасибо за потраченное время и за ввод первой версии вопроса.
млрд
Пример схемы XML
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="Location">
<xs:complexType>
<xs:attribute name="State" type="xs:string" use="required" />
<xs:attribute name="County" type="xs:string" use="required" />
<xs:attribute name="City" type="xs:string" use="required" />
<xs:attribute name="Zipcode" type="xs:nonNegativeInteger" use="required" />
<xs:attribute name="HouseNumber" type="xs:nonNegativeInteger" use="required" />
</xs:complexType>
</xs:element>
</xs:schema>
Пример ввода XML:
<Location>
<State>California</State>
<County>Los Angeles County</County>
<City>Los Angeles</City>
<Zipcode>90210</Zipcode>
<HouseNumber>123</HouseNumber>
</Location>
Образец XSLT:
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="html"/>
<xsl:template match="/">
<xsl:for-each select="Location">
<!--Inner HTML example, div has no id-->
<div class="houseStyle">
<ul>
<li><xsl:value-of select="Location/State"/></li>
<li><xsl:value-of select="Location/County"/></li>
<li><xsl:value-of select="Location/City"/></li>
<li><xsl:value-of select="Location/Zipcode"/></li>
</ul>
</div>
<!--Inner HTML example again, but how do I
set the div id to HouseNumber?-->
<div class="houseStyle" id=HouseNumber>
<ul>
<li><xsl:value-of select="Location/State"/></li>
<li><xsl:value-of select="Location/County"/></li>
<li><xsl:value-of select="Location/City"/></li>
<li><xsl:value-of select="Location/Zipcode"/></li>
</ul>
</div>
</xsl:for-each>
</xsl:stylesheet>
Требуемый вывод HTML, где тег div имеет идентификатор номера дома:
<div class="houseStyle" id="123">
<ul>
<li>California</li>
<li>Los Angeles County</li>
<li>Los Angeles</li>
<li>90210</li>
</ul>
</div>