2
XSLTでは特定のタグを見つけてその内容に置き換えることは可能ですか?たとえば、このXMLを与えられた:XSLT - 特定のタグを検索して見つける
<span>Hello world</span>
我々はこれで終わるだろう:
Hello world
ので役に立たないと冗長SPANタグは任意のレベル(再帰的に)で、その内容に置き換えられます。私たちは、 "裸の"スパンタグ(属性のないスパンタグ)を見つけて、その内容で置き換えることを望みます。
私は制御できないXMLを処理しています。ありがとう。
アップデート:ここではサンプル出力に続いて、* .xslファイルが含まれているものです:
<xsl:stylesheet
version="1.0"
exclude-result-prefixes="x d xsl msxsl cmswrt"
xmlns:x="http://www.w3.org/2001/XMLSchema"
xmlns:d="http://schemas.microsoft.com/sharepoint/dsp"
xmlns:cmswrt="http://schemas.microsoft.com/WebParts/v3/Publishing/runtime"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:msxsl="urn:schemas-microsoft-com:xslt">
<xsl:param name="ItemsHaveStreams">
<xsl:value-of select="'False'" />
</xsl:param>
<xsl:variable name="OnClickTargetAttribute" select="string('javascript:this.target="_blank"')" />
<xsl:variable name="ImageWidth" />
<xsl:variable name="ImageHeight" />
<xsl:template name="Contact" match="Row[@Style='Contact']" mode="itemstyle">
<div class="outer-container">
<table border="0" cellspacing="0" width="100%">
<tr>
<td class="ms-vb" style="text-align:left; padding:9px;">
<span style="font-weight:bold; border-bottom:1px solid #999;"><xsl:value-of select="@Title"/></span>
<!-- Phone and Emergency Phone -->
<xsl:if test="@Phone != '' or @EmergencyPhone != ''">
<xsl:if test="@Phone != ''">
<xsl:value-of select="@Phone" disable-output-escaping="yes"/><br />
</xsl:if>
<xsl:if test="@EmergencyPhone != ''">
<xsl:value-of select="@EmergencyPhone" disable-output-escaping="yes"/>
</xsl:if>
</xsl:if>
<!-- Email -->
<xsl:if test="@Email != ''">
<span style="text-align:left">E-mail: <a href="mailto:{@Email}"><xsl:value-of select="@Email"/></a></span>
</xsl:if>
<!-- Address & Map -->
<!--
Must test for both empty string and empty div tags, escaped.
-->
<xsl:if test="@Address != '' and @Address !='<div></div>'">
<p>Address: <xsl:value-of select="@Address" disable-output-escaping="yes"/></p>
</xsl:if>
<xsl:if test="@Map != ''">
(<a href="{@Map}">MAP</a>)
</xsl:if>
<!-- Opening Hours -->
<xsl:if test="@OpeningHours != ''">
<p><b>Opening Hours:</b></p>
<xsl:value-of select="@OpeningHours" disable-output-escaping="yes"/>
</xsl:if>
</td>
</tr>
</table>
</div>
</xsl:template>
</xsl:stylesheet>
ここでのサンプル出力は、現在です:
Contact Health Services
962-8328
962-8945
Emergency only: 962-8884
After hours, contact Security Dispatch to connect with Health Services staff on duty.
E-mail: [email protected]
Address:
123 Main St.
(MAP)
Opening Hours:
Sunday -Thursday 08:00 -17:30
ありがとう、Kirill。あなたはそれをとても簡単に見せます!上記の出力に他のXSLTを行うことは可能ですか?例えば、私がスタイリングなどを適用する必要がある場合、私はカスタムテンプレートを持っています、上記のコードの後に行くでしょうか? – Alex
@Alex、よろしいですか?サンプルXMLとサンプル出力XMLを提供できますか? (あなたの質問を更新してください) –
キリル、上記の更新された質問をご覧ください。ありがとう。 – Alex