完全在内容可编辑div标签中显示文本

时间:2015-06-08 05:43:49

标签: javascript c# xml

我有像

这样的XML
<XYZ>front0 

and</XYZ>

当我在xml中保存文本时,它就像我输入的内容一样保存。但是当我从XML获取它然后它显示在一行.. 问题是什么??任何建议PLZ

更新

XmlDocument xd = new XmlDocument();
string LastModifiedByTrans = "";
string date = "";
string LastModifiedByQaed = "";
string QAed_date = "";

try
{
    foreach (var g in gp)
    {
        p.text = g.Text_xml.ToString();

        // LOAD TEXT XML
        xd.LoadXml(p.text);
        XmlNodeList txt = xd.GetElementsByTagName("Texts");
        for (int i = 0; i < txt.Count; i++)
        {
            XmlNode nd = txt.Item(i);
            if (nd.HasChildNodes)
            {
                XmlNodeList cnd = nd.ChildNodes;
                    foreach (XmlNode n in cnd)
                    {
                           cont = n.ChildNodes[0].InnerText;

...

通过innerText我获取XML值.. 就像是 n.ChildNodes[0].InnerText; "front0 and \r\n\r\nsaid can " string 但是当我在div标签中显示它时,它以单行显示

更新

public List<Room> getText(decimal Trans_ID, decimal Job_ID, string GroupName, string path)
{
    GroupData p = new GroupData();
    Room newroom = new Room();
    var room = new List<Room>();
    XmlDocument xd = new XmlDocument();
    string LastModifiedByTrans = "";
    string date = "";
    string LastModifiedByQaed = "";
    string QAed_date = "";

    try
    {
        var gp = (from Trans_Mast in r2ge.Transcription_Master where Trans_Mast.Transcription_Id == Trans_ID && Trans_Mast.Entity_Id == Job_ID select Trans_Mast).Distinct();

        foreach (var g in gp)
        {
            p.text = g.Text_xml.ToString();

            // LOAD TEXT XML
            xd.LoadXml(p.text);
            XmlNodeList txt = xd.GetElementsByTagName("Texts");
            for (int i = 0; i < txt.Count; i++)
            {
                XmlNode nd = txt.Item(i);
                if (nd.HasChildNodes)
                {
                    XmlNodeList cnd = nd.ChildNodes;
                    if (role == "Transcriber")
                    {
                        foreach (XmlNode n in cnd)
                        {
                            if (GroupName == n.Attributes["group"].Value && n.Attributes["audio"].Value.Equals(path) && n.Attributes["role"].Value.Equals("QA"))
                            {
                                LastModifiedByQaed = n.Attributes["user"].Value;
                                if (((n.Attributes["datetime"]).Value).Length > 0)
                                {
                                    QAed_date = Convert.ToDateTime(n.Attributes["datetime"].Value).ToString("yyyy/MM/dd HH:mm:ss");
                                }
                                else
                                    QAed_date = "";
                            }
                        }
                        foreach (XmlNode n in cnd)
                        {
                            if (GroupName == n.Attributes["group"].Value && n.Attributes["audio"].Value.Equals(path))
                            {
                                string cont = "";
                                string contnt = "";
                                if ((n.ChildNodes).Count > 0)
                                {
                                    cont = n.ChildNodes[0].InnerText;
                                    contnt = cont.Replace(System.Environment.NewLine, "<br/>");
                                }
                                else
                                    cont = "blank";
                                if (((n.Attributes["datetime"]).Value).Length > 0)
                                {
                                    date = Convert.ToDateTime(n.Attributes["datetime"].Value).ToString("yyyy/MM/dd HH:mm:ss");
                                }
                                else
                                    date = "";


                                Text text = new Text()
                                {
                                    Content = cont,
                                    LastModifiedOn = date,
                                    LastModifiedBy = n.Attributes["user"].Value,
                                    LastModifiedBy_Qaed = LastModifiedByQaed,
                                    LastModifiedOn_Qaed = QAed_date

                                };
                                newroom.text.Add(text);
                            }
                        }
                    }                    
                }
            }
        }
    }
    catch (Exception ex)
    {
        Console.Write("In fetch text data err", ex.Message);
        throw ex;
    }
    room.Add(newroom);
    return room;
}

1 个答案:

答案 0 :(得分:0)

您如何阅读XML? “获取XML”是什么意思? C#中有很多方法可以读取文件的XML内容 请提供用于获取XML文件的代码段。

这是我的代码片段,它从字符串中加载XML数据(由于假设您的文件正确写入而正确)。它正确地将多行XML元素读取为字符串。

更新哦,现在我明白了。我在学习PHP时遇到了同样的问题。这让我很疯狂 然后,我找到了答案:文本实际上正确显示。但是, HTML不会输出换行符

这意味着:
你有XML:

<value>Hi
I am a multiline
value</value>

它被正确读取到字符串并输出到这样的HTML:

<div>
  Hi
  I am a multiline
  value
</div>

但是,在浏览器中,您会看到一行。 这是一个JSFiddle:http://jsfiddle.net/s9d36a8n/
您可以通过查看源代码来确保我是否正确(在大多数浏览器中为Ctrl + U)。

如果您希望数据显示在多行上,则需要在每行的末尾放置HTML换行符<br/>,如下所示:

<div>
  Hi<br/>
  I am a multline<br/>
  value
</div>

您可以通过执行

来实现此目的
htmlWithBrs = cont.Replace(Environment.NewLine, "<br/>");

你会得到这样的结果:http://jsfiddle.net/5vtk8ovk/