[英]XSL style: using <xsl:for-each select> or <xsl:template match> or other solutions in XSLT?
[英]Using XPath to select nodes outside of the normal sequence of xsl:for-each
我有以下XML代码:
<?xml version="1.0" encoding="UTF-8"?>
<Collection>
<Content>
<ID>12</ID>
<Type>Content</Type>
<Title>Office Location #1</Title>
<QuickLink>/office.aspx?id=12</QuickLink>
<Teaser>
<p>
<span class="infoBold">My Group</span>
<br />
WPO
<br />
Office Location #1
<br />
Wp, NY 090801
<br />
986.362.3265
</p>
</Teaser>
<Html>
<root>
<Location>
<location />
<office>WPO</office>
<Address>
<image>
<img src="someing.png" />
</image>
<Address1>Office Location #1</Address1>
<Address2 />
<City>Wp</City>
<State>NY</State>
<zip>09081</zip>
<phone>986.362.3265</phone>
<fax />
<urgent_care_phone />
</Address>
</Location>
</root>
</Html>
</Content>
<Content>
<ID>48</ID>
<Type>Content</Type>
<Title>Office Location #3</Title>
<QuickLink>/office.aspx?id=48</QuickLink>
<Teaser>
<p>
<span class="infoBold">My Group</span>
<br />
WPO
<br />
Office Location #3
<br />
Wp, NY 090801
<br />
986.362.3265
</p>
</Teaser>
<Html>
<root>
<Location>
<location />
<office>WPO</office>
<Address>
<image>
<img src="someing.png" />
</image>
<Address1>Office Location #3</Address1>
<Address2 />
<City>Wp</City>
<State>NY</State>
<zip>09081</zip>
<phone>986.362.3265</phone>
<fax />
<urgent_care_phone />
</Address>
</Location>
</root>
</Html>
</Content>
<Content>
<ID>36</ID>
<Type>Content</Type>
<Title>Office Location #2</Title>
<QuickLink>/office.aspx?id=36</QuickLink>
<Teaser>
<p>
<span class="infoBold">My Group</span>
<br />
WPO
<br />
Office Location #2
<br />
Wp, NY 090801
<br />
986.362.3265
</p>
</Teaser>
<Html>
<root>
<Location>
<location>WP</location>
<office>WPO</office>
<Address>
<image>
<img src="someing.png" />
</image>
<Address1>Office Location #2</Address1>
<Address2 />
<City>Wp</City>
<State>NY</State>
<zip>09081</zip>
<phone>986.362.3265</phone>
<fax />
<urgent_care_phone />
</Address>
</Location>
</root>
</Html>
</Content>
</Collection>
我想显示以下格式:
FOR EACH ENTRY inside `Collection/Content/`:
Html/root/Location/location (if not blank show it)
Html/root/Location/Address {
/Address1
/Address2 (if not blank show it)
/City
/State
/zip
/phone
/fax (if not blank show it)
}
Html/root/Location/location (if not blank show it)
Html/root/Location/Address {
/Address1
/Address2 (if not blank show it)
/City
/State
/zip
/phone
/fax (if not blank show it)
}
Html/root/Location/location (if not blank show it)
Html/root/Location/Address {
/Address1
/Address2 (if not blank show it)
/City
/State
/zip
/phone
/fax (if not blank show it)
}
我正在尝试获取QuickLink
<xsl:for-each select="Collection/Content/Html">
<div class="serviceHolder brClear">
<xsl:value-of select="root/Location/Address/Address1" />
<xsl:value-of select="root/Location/Address/Address2" />
<xsl:value-of select="root/Location/Address/City" />
<xsl:value-of select="root/Location/Address/State" />
<xsl:value-of select="root/Location/Address/zip" />
<xsl:value-of select="root/Location/Address/phone" />
<a href="{QuickLink}" title="Test">Get Direction</a>
</div>
</xsl:for-each>
尽管我在for-each中使用了Collection/Content/Html
,但是如何在此处返回锚点链接的Collection/Content/QuickLink
:
<a href="{QuickLink}" title="Test">Get Direction</a>
对于a
产生问题,使XPath来QuickLink
相对于所述内上下文节点xsl:for-each
通过改变:
<a href="{QuickLink}" title="Test">Get Direction</a>
至
<a href="{../QuickLink}" title="Test">Get Direction</a>
至于通过为您编写XSLT在HTML中生成其余的伪标记,我宁愿为特定问题提供帮助,而不是为您编写代码。 如果您还有其他具体问题,请告诉我们。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.