XmlText.cs 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. //
  2. // System.Xml.XmlText
  3. //
  4. // Author:
  5. // Jason Diamond <[email protected]>
  6. //
  7. // (C) 2002 Jason Diamond http://injektilo.org/
  8. //
  9. using System;
  10. using System.Xml.XPath;
  11. namespace System.Xml
  12. {
  13. public class XmlText : XmlCharacterData
  14. {
  15. #region Constructor
  16. protected internal XmlText (string strData, XmlDocument doc) : base(strData, doc)
  17. {
  18. }
  19. #endregion
  20. #region Properties
  21. public override string LocalName
  22. {
  23. get { return "#text"; }
  24. }
  25. public override string Name {
  26. get { return "#text"; }
  27. }
  28. public override XmlNodeType NodeType {
  29. get { return XmlNodeType.Text; }
  30. }
  31. internal override XPathNodeType XPathNodeType {
  32. get {
  33. return XPathNodeType.Text;
  34. }
  35. }
  36. public override string Value {
  37. get { return Data; }
  38. set { Data = value; }
  39. }
  40. #endregion
  41. #region Methods
  42. public override XmlNode CloneNode (bool deep)
  43. {
  44. XmlText newText = OwnerDocument.CreateTextNode(Data);
  45. if(deep) {
  46. for (int i = 0; i < ChildNodes.Count; i++)
  47. newText.AppendChild (ChildNodes [i].CloneNode (deep));
  48. }
  49. return newText;
  50. }
  51. public virtual XmlText SplitText (int offset)
  52. {
  53. XmlText next = OwnerDocument.CreateTextNode (this.Data.Substring (offset));
  54. DeleteData (offset, Data.Length - offset);
  55. this.ParentNode.InsertAfter (next, this);
  56. return next;
  57. }
  58. public override void WriteContentTo (XmlWriter w) {}
  59. public override void WriteTo (XmlWriter w)
  60. {
  61. w.WriteString (Data);
  62. }
  63. #endregion
  64. }
  65. }