XmlText.cs 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  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. {
  47. foreach(XmlNode child in ChildNodes)
  48. newText.AppendChild(child.CloneNode(deep));
  49. }
  50. return newText;
  51. }
  52. public virtual XmlText SplitText (int offset)
  53. {
  54. XmlText next = OwnerDocument.CreateTextNode(this.Data.Substring(offset));
  55. DeleteData(offset, Data.Length - offset);
  56. this.ParentNode.InsertAfter(next, this);
  57. return next;
  58. }
  59. public override void WriteContentTo (XmlWriter w) {}
  60. public override void WriteTo (XmlWriter w)
  61. {
  62. w.WriteString (Data);
  63. }
  64. #endregion
  65. }
  66. }