【发布时间】:2011-04-06 03:58:12
【问题描述】:
我正在构建一个小型 php 应用程序,它只是从数据库中提取 XML 字符串并将整个字符串显示在文本区域内的页面上。听起来很简单,对吧?当我这样做时,我达到了 8k 字符的限制并且我的 XML 被截断了。
我要做的就是从 XML 字段中获取原始文本。
SQL Server 2008 不允许转换或转换为文本。当我转换为nvarchar(max) 时,我得到的比没有转换的多一点,但它仍然被截断。使用 GUI,我可以选择该字段并打开它以显示所有文本....您如何以编程方式执行此操作?
我正在使用 ADODBPHP
$sql = "SELECT [IndicatorID]
,[LitpMultiYearXml]
,[LitpComparisonXml]
FROM [MD_SPP_0910].[dbo].[SppResult]
where IndicatorID = ".$_GET['indicator_id'];
$xml = $db->GetRow($sql);
//echo $sql;
$multi_year = $xml[1];
$multi_year = htmlspecialchars(str_replace(">",">\n",$multi_year));
echo "<textarea name='xml' cols='80' rows='20'>$multi_year</textarea><input type='hidden' name='indicator_id' value='$indicator_id'/>";
【问题讨论】:
-
LitpMultiYearXml列是否只包含您想要的值,还是其中有 XML 标记?如果是后者,你可以使用TSQL's XML.value function -
这真的是 XML 类型的列吗?还是只是一个包含一些 XML 文本的 char 列?
-
@OMG Ponies - 我想要所有 XML 标记以及值...
-
您可以先尝试转换为 varchar(max),然后再转换为文本。
cast(cast(XMLCol as varchar(max)) as text)
标签: sql-server xml sql-server-2005 adodb