
而 html() 办法也绝对读不出xml中的标签。
现在给你两种解决办法:
办法一,不用ajax,而用jquery的load()办法。前提是你知道load()怎么用。
将你需要读取的的xml代码块外面套一层html标签,比如div什么的,再给他加个ID,比如:
<info>
<div id="xxx">
小牛情侣纸巾套,很可爱的一对小情侣哦!<br />
赶快领回家吧!<br />
超软的面料,超可爱的造型,冷冷的冬天抱在手上也是<br />
很享受的事情哦!</div></info>
这样,用
$("选择器").load("xml文件的url #xxx")
就可以读出。
这办法有2种缺点。
一,这办法不是ajax,虽然有点像
二,需要改动xml原文件。
办法二,使用一小段jquery插件:
/**
* jQuery xml plugin - Converts XML node(s) to string
* Dual licensed under the MIT and GPL
* Copyright (c) 2009 Radim Svoboda
* @version 1.0.0
*/
jQuery.fn.xml=function(all){var s=""if(this.length)
(((typeof all!='undefined')&&all)?this:jQuery(this[0]).contents()).each(function(){s+=window.ActiveXObject?this.xml:(new XMLSerializer()).serializeToString(this)})return s}
以上为插件代码。
使用以上代码后,就可以使用ajax读取xml文件中的文字和标签了。比如:
$.get('xml文件url',function(data){$('选择器').html($(data).find('info').xml(0))})
其中xml()括号里有两个参数0和1可以选。
0代表读取 info标签里面的内容
1代表读取 info标签以及标签里面的内容
这种办法,缺点暂时没发现。
好了,我写了那么多,分给我吧?
在页面中换行需要使用br标签或通过其他块级元素、css规则等方式实现:1.br标签
<span>123<br />456<span>
2.块级元素(输出的html代码可以是一行,显示出来会出现3行)
<div>第一行</div><div>第二行</div><div>第三行</div>
3.pre标签(生成html代码必须包含所有的格式,如换行符\n等,会按照源代码的格式显示)
<pre>
第1行
第2行
第3行
</pre>
datatable如果想转换成JSON类型的数据,是需要处理的。直接用微软提供的JavaScriptSerializer类直接序列化,会报错。
所以这里需要贴上两个方法,专门用来转换datatable的
#region DataTable转换为JSON/// <summary>
/// DataTable生成JSON
/// </summary>
/// <param name="dt"></param>
/// <returns></returns>
public static string CreateJSON(DataTable dt)
{
Dictionary<string, object> dit = new Dictionary<string, object>()
List<Dictionary<string, string>> list = DateTableConverter(dt)
if (list != null)
{
dit[dt.TableName] = DateTableConverter(dt)
return new JavaScriptSerializer().Serialize(dit)
}
else
{
return ""
}
}
/// <summary>
/// 将DataTable数据转化为字典类型
/// </summary>
/// <param name="dt"></param>
/// <returns></returns>
public static List<Dictionary<string, string>> DateTableConverter(DataTable dt)
{
List<Dictionary<string, string>> list = new List<Dictionary<string, string>>()
string cloName = string.Empty
foreach (DataRow dr in dt.Rows)
{
Dictionary<string, string> cloumn = new Dictionary<string, string>()
foreach (DataColumn dc in dt.Columns)
{
cloName = dc.ColumnName
cloumn.Add(cloName, dr[cloName].ToString())
}
list.Add(cloumn)
}
return list
}
#endregion
2.调用代码如下
DataTable table = new DataTable("Table1")DataColumn col1 = new DataColumn("ID", typeof(string))
DataColumn col2 = new DataColumn("Name", typeof(string))
table.Columns.Add(col1)
table.Columns.Add(col2)
DataRow row1 = table.NewRow()
row1["ID"] = "1"
row1["Name"] = "a"
table.Rows.Add(row1)
DataRow row2 = table.NewRow()
row2["ID"] = "2"
row2["Name"] = "b"
table.Rows.Add(row2)
string json = CreateJSON(table)
3.json结果如下
{"Table1":[{"ID":"1","Name":"a"},{"ID":"2","Name":"b"}]}4.数组中每一个元素,都是一行数据。只要循环遍历,然后将结果添加入你已经创建好的table中就可以了。还有疑问,继续追问吧。我先去吃饭了。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)