我的XML代码中有一个CDATA标记,其中包含一些超链接.
<smartText><![CDATA[
Among individual stocks, the top percentage gainers in the S.&P. 500 are
<a href ='http://investing.domain.com/research/stocks/snapshot
/snapshot.asp?ric=LNC'>Lincoln National Corp</a> and
<a href ='http://investing.domain.com/research/stocks/snapshot
/snapshot.asp?ric=PLD'>ProLogis</a>.]]>
</smartText>
Run Code Online (Sandbox Code Playgroud)
我正在尝试将其转换为HTML页面,如下所示......
<p class="smartText">
<xsl:copy-of select="marketSummaryModuleData/smartText"/>
</p>
Run Code Online (Sandbox Code Playgroud)
不幸的是,页面上的输出显示为纯文本,而不是html.
Among individual stocks, the top percentage gainers in the S.&P. 500 are <a href ='http://investing.businessweek.com/research/stocks/snapshot/snapshot.asp?ric=PLD'>ProLogis</a> and <a href ='http://investing.businessweek.com/research/stocks/snapshot/snapshot.asp?ric=LNC'>Lincoln National Corp</a>.
Run Code Online (Sandbox Code Playgroud)
CDATA部分是从经典的ASP页面创建的,因此实际的XML输出不包含CDATA部分.这可能是问题的一部分吗?我似乎无法获取要在页面上呈现的信息.我尝试了Google搜索提供的多种解决方案,例如disable-escape-tags,xsl:copy-of,xsl:value-of等等.
谢谢
我认为我的代码中有错误,或者我的PHP或Apache设置不正确.
当我提交一个带有隐藏字段的表单时,我的$ _POST数组中没有任何数据...
当我在代码中注释掉隐藏字段时,POST数据会正确返回...
HTML表格
<form action='/utils/login.php ' method='POST'>
<table>
<tr>
<td colspan='2'>
Login
</td>
</tr>
<tr>
<td>
Username
</td>
<td>
<input type='text' name='userid' value='' size='12' />
</td>
</tr>
<tr>
<td>
Password
</td>
<td>
<input type='password' name='password' size='12' />
</td>
</tr>
<tr>
<td>
<input type='hidden' name='formtype' value='login' />
</td>
</tr>
<tr>
<td>
<input type='submit' value='Submit' />
</td>
</tr>
</table></form>
Run Code Online (Sandbox Code Playgroud)
这是在PHP中处理它的代码...
foreach ($_POST as $var => $value) {
echo "$var = $value<br>";
}
Run Code Online (Sandbox Code Playgroud)
我在我的服务器上使用PHP 5和Apache 2.2.
有任何想法吗?
编辑...
我把它缩小到这个......
$command = …
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用XML信息和XSLT模板创建超链接.这是XML源代码.
<smartText>
Among individual stocks, the top percentage gainers in the S. and P. 500 are
<smartTextLink smartTextRic="http://investing.domain.com/research/stocks/snapshot
/snapshot.asp?ric=HBAN.O">Huntington Bancshares Inc</smartTextLink>
and
<smartTextLink smartTextRic="http://investing.domain.com/research/stocks/snapshot
/snapshot.asp?ric=EK">Eastman Kodak Co</smartTextLink>
.
</smartText>
Run Code Online (Sandbox Code Playgroud)
我希望输出看起来像这样,公司名称是基于Xml中"smartTextLink"标签的超链接.
在个股中,S&P的涨幅最大.500名是Eastman Kodak Co和Huntington Bancshares Inc.
这是我现在使用的模板.我可以显示文本,但不能显示超链接.
<xsl:template match="smartText">
<p class="smartText">
<xsl:apply-templates select="child::node()" />
</p>
</xsl:template>
<xsl:template match="smartTextLink">
<a>
<xsl:apply-templates select="child::node()" />
<xsl:attribute name="href">
<xsl:value-of select="@smartTextRic"/>
</xsl:attribute>
</a>
</xsl:template>
Run Code Online (Sandbox Code Playgroud)
我尝试了多种变体,试图让超链接正常工作.我认为模板匹配="smartTextLink"由于某种原因没有被实例化.有没有人对如何使这项工作有任何想法?
编辑:在审查了一些答案后,它仍然无法在我的整个应用程序中工作.
我在我的主模板中调用了smartText模板
使用以下声明......
<xsl:value-of select="marketSummaryModuleData/smartText"/>
Run Code Online (Sandbox Code Playgroud)
这也可能是问题的一部分吗?
谢谢
巴蒂尔