【问题标题】:XSLT Client side Transformation not supply textarea valueXSLT 客户端转换不提供 textarea 值
【发布时间】:2011-12-25 22:13:37
【问题描述】:

我正在进行客户端转换。我想使用 XSLT 从 XML 中获取一个值并将其作为默认文本放在 textarea 中,但它不起作用。 我有一个名为 AddNewBlog.aspx 的文件,它实际上是一个 XML 文件。它包括一个名为 AddNewBlogXSL.aspx 的文件,该文件为客户端转换提供 XSL。

在 AddNewBlogXSL.aspx 我有

<label for="Oohrl" id="OohrlLabel">Oohrl:</label>
<input name="ctl00$RightColumn$Oohrl" 
type="text" value="{/oohru/form/oohrl}" 
id="Oohrl" class="textEntry"/>
<br/>
<div id="validateOohrl"/>
    <label for="Description" id="DescriptionLabel">Description:</label>
    <textarea name="ctl00$RightColumn$Description" 
    rows="4" cols="50" id="Description">
        {/oohru/form/desc}
    </textarea>

如果有帮助,这里是 XSL 文件的标题信息

<xsl:stylesheet version="1.0"><xsl:strip-space elements="*"/><!--  
Type Num
1=want
2=have
3=sell
--><xsl:output method="html" indent="yes" doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN"/><xsl:template match="/">

我的 XML 有这个

<oohru>
    <form>
        <desc>asdf</desc>
        <title>a</title>
        <oohrl>jordie</oohrl>
    </form>
</oohru>

它的标题是

<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml-stylesheet type="text/xsl" href="AddNewBlogXSL.aspx"?>

oohrl 最终填充为正确的值,但对于 desc,我只得到“{/oohru/form/desc}”

结构似乎只是文本区域的问题

更新:似乎只是asp.net文本区域控件的问题...

    <asp:TextBox id="Description" TextMode="MultiLine" 
Columns="50" Rows="4" runat="server" 
ClientIDMode="Static"><xsl:value-of select="/oohru/form/desc" />
    </asp:TextBox>

输入字面值

<xsl:value-of select="/oohru/form/desc" />

进入页面上的框

<textarea rows="5" cols="5"><xsl:value-of select="/oohru/form/desc" /></textarea>

将实际正确的值放入文本区域......

【问题讨论】:

  • 错误的不是你的代码,而是你运行它的方式(或不运行它)。你什么都没告诉我们。
  • 希望这有助于澄清我运行它的方式。将该文件包含在 XSL 表中的客户端转换

标签: asp.net xml xslt xhtml


【解决方案1】:

我能想到的最常见的情况是

  1. 您实际上并没有通过 XSLT 处理器运行它。我要去 假设你有!
  2. 您错误地声明了 XSLT 命名空间。制作 确保你的顶部有这样的东西 样式表:

    &lt;xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"&gt;

请记住,前缀只是命名空间本身的一种表示。该命名空间名称必须是完全正确,正如我在上面提供的那样。

【讨论】:

  • 它说 #2 确保你的样式表顶部有这样的东西,我只看到“......”我认为它必须在代码块中,无论你要做什么说
  • 这是我的样式表的顶部&lt;xsl:stylesheet version="1.0"&gt;&lt;xsl:strip-space elements="*"/&gt;&lt;!-- Type Num 1=want 2=have 3=sell --&gt;&lt;xsl:output method="html" indent="yes" doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN"/&gt;&lt;xsl:template match="/"&gt;
  • 嗯。不知道为什么我的例子没有显示。强迫它。您的样式表遇到错误 2 - 您需要声明 xsl 命名空间。
猜你喜欢
  • 2012-04-08
  • 2012-01-25
  • 1970-01-01
  • 2020-11-20
  • 2021-11-10
  • 1970-01-01
  • 2013-01-22
  • 2015-07-17
  • 2015-03-06
相关资源
最近更新 更多