Thêm ký tự đặc biệt <![CDATA[]]> và file xml như thế nào?

Thảo luận trong 'Lập trình web Asp.net' bắt đầu bởi seolagi, 1/7/17.

  1. seolagi
    Tham gia ngày:
    16/4/14
    Bài viết:
    1,027
    Đã được thích:
    80
    Điểm thành tích:
    48
    Vấn đề khó hỏi 1 tuần trên các forum mà không ai giúp được, nhờ ITSEOVN @admin giup mình với.
    Ý mình là muốn gắn ký tự <! và > vào dữ liệu xml của file xml. Tại khi add trực tiếp nó toàn ra các ký tự &lt; và &gt;
    Nó không ra các ký tự nằm trong thẻ CDATA được.
    Ý mình muốn khi chạy xong file nó sẽ ra định dạng : <![CDATA[noidung]]/> bình thường nó toàn ra : &lt;![CDATA[noidung]]&gt;.
    Mình lên google search mà không được, lên các forum Việt hỏi tanh bành mà toàn được trả lời tào lao. Lên forum thế giới họ chỉ không làm được huhuh, giúp với.

    VD: mình có đoạn code asp.net (C#) chạy tạo file.xmlnhư sau:
    Mã:
    Response.Clear();
    Response.ContentType = "text/xml";
    using (XmlTextWriter writer = new XmlTextWriter(Server.MapPath("/file.xml"), Encoding.UTF8))
    {
          writer.WriteStartDocument();
          writer.WriteStartElement("urlset");
    
          writer.WriteStartElement("item");
          writer.WriteElementString("content", "<![CDATA[Nội dung bài viết của mình......]]/>");
          writer.WriteEndElement();
    
          writer.WriteEndElement();
          writer.WriteEndDocument();
          writer.Flush();
    }
    
    Mình muốn gọi xong file sẽ phải như là:
    Mã:
    <?xml version="1.0" encoding="utf-8"?>
    <urlset>
      <item>
          <content><![CDATA[Nội dung bài viết của mình......]]></content>
      </item>
    </urlset>
    Nhưng khi chạy xong nó toàn ra:
    Mã:
    <content>&lt;![CDATA[Nội dung bài viết của mình......]]&gt;</content>
    Giúp với, cần gấp lắm mò cho cty 1 tuần rồi hhuhuhu
     
    Cảm ơn đã xem bài:

    Thêm ký tự đặc biệt <![CDATA[]]> và file xml như thế nào?

  2. admin
    Tham gia ngày:
    22/5/13
    Bài viết:
    4,883
    Đã được thích:
    1,193
    Điểm thành tích:
    113
    Giới tính:
    Nam
    @seolagi bạn ơi, ký tự đặc biệt của các thẻ ví dụ CDATA bạn add trực tiếp sẽ không được đâu. Nếu bạn muốn add CDATA vào XML bạn làm như sau:
    Mã:
    writer.WriteStartElement("content");
    writer.WriteCData("Nội dung bạn muốn thêm");
    writer.WriteEndElement();
    
    VD: với code của bạn mình sửa là:
    Mã:
    Response.Clear();
    Response.ContentType = "text/xml";
    using (XmlTextWriter writer = new XmlTextWriter(Server.MapPath("/file.xml"), Encoding.UTF8))
    {
          writer.WriteStartDocument();
          writer.WriteStartElement("urlset");
    
          writer.WriteStartElement("item");
        
          writer.WriteStartElement("content");
          writer.WriteCData("Nội dung bài viết của mình......");
          writer.WriteEndElement();
    
          writer.WriteEndElement();
    
          writer.WriteEndElement();
          writer.WriteEndDocument();
          writer.Flush();
    }
    
    =>> 100% sẽ là : <content><![CDATA[Nội dung bài viết của mình......]]></content>
     
    seolagi thích bài này.
  3. seolagi
    Tham gia ngày:
    16/4/14
    Bài viết:
    1,027
    Đã được thích:
    80
    Điểm thành tích:
    48
    Dễ quá hiccc cảm ơn ADMIN, trách nào lên các forum nước ngoài nó cứ nói add CDATA vào mà mình không hiểu, ai dè add vậy :) thanks admin, đã làm được