asp.net页面想读写xml里的格式化文本

lzqiubao 2010-10-02 04:53:15
我在网上看了个新闻系统,用xml来储存新闻(包括title\content)。但是显示出来没有换行、空格等。就是一堆文字。请问怎么处理?

我贴上各个文件。

//news.xml
<?xml version="1.0" encoding="gb2312"?>
<xinwen>
<news>
<news_id>6</news_id>
<news_title>edd</news_title>
<news_author>果园</news_author>
<news_ly>myself</news_ly>
<news_content>天公是否作美,成为“嫦娥二号”卫星能否按计划发射的焦点。今天下午17时,“嫦娥二号”任务发射场区指挥部举行气象会商,确定10月1日预定“发射窗口”的气象条件适宜卫星发射。
会商中,“嫦娥二号”任务首席气象预报员、西昌卫星发射中心气象室高级工程师江晓华介绍,10月1日预定“发射窗口”气象情况为:气温15℃—17℃,雷电概率较小,小雨,每小时降雨量小于1毫米。经发射场区指挥部会商,“嫦娥二号”卫星可按计划顺利发射。
最近几天,西昌地区天气多变。为确保天气预报及时准确,西昌卫星发射中心气象室的预报人员翻阅近10万张历史天气图,开展雷暴、降水、高空风等多个专题研究,为精确预报预定“发射窗口”气象情况奠定了坚实基础
</news_content>
<news_adddate>2008-1-12 15:39:44</news_adddate>
</news>
</xinwen>




//new_list.aspx
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="news_list.aspx.cs" Inherits="news_list" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>无标题页</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<table style="width: 594px" align=center>
<tr>
<td align="center" style="width: 594px">
<asp:Label ID="title" runat="server" Font-Size="X-Large" ForeColor="Red"></asp:Label></td>
</tr>
<tr>
<td align="center" style="width: 594px">
作者:<asp:Label ID="author" runat="server"></asp:Label>
来源:
<asp:Label ID="ly" runat="server"></asp:Label>
发布时间:
<asp:Label ID="adddate" runat="server"></asp:Label></td>
</tr>
<tr>
<td style="width: 594px">
<asp:Label ID="content" runat="server"></asp:Label></td>
</tr>

</table>

</div>
</form>
</body>
</html>



//news_list.aspx.cs
public partial class news_list : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
string url = Server.MapPath("news.xml");
string news_id = Request.QueryString["news_id"];
if (news_id == "")
{
Response.Redirect("news_manage.aspx");
}
else
{
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(url); //加载XML文档
XmlNode root = xmlDoc.SelectSingleNode("xinwen/news[news_id ='" + news_id + "']");

if (root != null)
{
title.Text = root.ChildNodes[1].InnerText;
author.Text = root.ChildNodes[2].InnerText;
ly.Text = root.ChildNodes[3].InnerText;
content.Text = Server.HtmlEncode(root.ChildNodes[4].InnerText.ToString());
adddate.Text = root.ChildNodes[5].InnerText;
}
}
}
}



...全文
126 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
fanxiaolin84 2010-10-02
  • 打赏
  • 举报
回复
呵呵,学习下
huangwenquan123 2010-10-02
  • 打赏
  • 举报
回复
格式好象rss,不过节点不一样
如果想用xml存储,在存储的时候把编辑器里的样式也存进去!
q107770540 2010-10-02
  • 打赏
  • 举报
回复
Regex r=new Regex(@"[\u4e00-\u9fa5]")

正则提取指定内容
wuyq11 2010-10-02
  • 打赏
  • 举报
回复
使用literal显示内容
replace("\r\n","<br>")
camperer 2010-10-02
  • 打赏
  • 举报
回复
你的内容中本来就没有html空格( )和换行(<br />)这些标签啊。。。。

如果是" "和"\r\n"这样的内容,<xmp></xmp>显示试试
sdo23 2010-10-02
  • 打赏
  • 举报
回复
似乎ASP.NET操作XML时件挺麻烦的事情啊!??
  • 打赏
  • 举报
回复
比如这样的xml对象:
<?xml version="1.0" encoding="utf-16"?>
<Post>
<ChatRoomID>100000000270013639</ChatRoomID>
<Message>测试消息8:497ddc2ce652254b48b762e4d3a5370a99上午特别<img alt='郁闷' src='郁闷.gif' />,结果坐着<img alt
='睡着' src='shuizhao.gif' />了。</Message>
</Post>
这里表示向某个编号的聊天室发送一个html格式的消息,这个消息直接使用label控件表现出来,其中的两个表情符号<img />就转义了。

如果使用.net封装的类,不论是xmldocument还是xml序列化之类的,都会自动处理转义。如果是手工拼接字符串,就要注意自己进行转义处理。
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 lzqiubao 的回复:]
那么我应该通过什么方法来获取我手动输入的文本并且能储存到空格、转行的数据?
假如我储存的是HTML文本,那么xml里应该用到CDATA段,但是怎么实现手动添加文本并且能由此添加一段CDATA到xml里呢?


我初学,很多东西不懂,希望大家多多指教。
[/Quote]

不需要CDATA。xml规定了5个(或者更少)字符需要转义。而如果你使用.net封装好的类库,那么写入节点的值直接写html内容,它会给你处理。

你手动添加的应该是html,这样才能正确地由label控件显示出内容的各种样子。
wuyq11 2010-10-02
  • 打赏
  • 举报
回复
XmlCDataSection cdataSection = childNode as XmlCDataSection;
Console.WriteLine(cdataSection.Value);
文本编辑器数据ntext保存,literal,div.innerthml直接显示
lzqiubao 2010-10-02
  • 打赏
  • 举报
回复
那么我应该通过什么方法来获取我手动输入的文本并且能储存到空格、转行的数据?
假如我储存的是HTML文本,那么xml里应该用到CDATA段,但是怎么实现手动添加文本并且能由此添加一段CDATA到xml里呢?


我初学,很多东西不懂,希望大家多多指教。
begintransaction 2010-10-02
  • 打赏
  • 举报
回复
  • 打赏
  • 举报
回复
一个label控件,它的text属性接受的是html代码内容,而不是简单的text。

而你的xml中的news_content节,显然不包括任何html文本。否则,我们通常可以看到“<、>”字符的xml转义符号的,而你贴出来的数据根本没有。
  • 打赏
  • 举报
回复
搞清楚你的信息内容是“普通的文本”还是“html文本”呢?

比如当你见到“<img />”,你是把它当作文本还是图片?这就是概念的差别!
mengxj85 2010-10-02
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 huangwenquan123 的回复:]
格式好象rss,不过节点不一样
如果想用xml存储,在存储的时候把编辑器里的样式也存进去!
[/Quote]
格式需要另外定义的UP

62,272

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧