{"id":490,"date":"2011-08-27T21:45:10","date_gmt":"2011-08-27T19:45:10","guid":{"rendered":"http:\/\/hen.co.za\/blog\/?p=490"},"modified":"2011-08-27T21:45:10","modified_gmt":"2011-08-27T19:45:10","slug":"xmlelementex-a-few-xmlelement-extension-methods","status":"publish","type":"post","link":"https:\/\/hen.co.za\/blog\/2011\/08\/xmlelementex-a-few-xmlelement-extension-methods\/","title":{"rendered":"XmlElementEx &#8211; a few XmlElement extension methods"},"content":{"rendered":"<p>I thought I&#8217;d just share a few extension methods I created for myself to handle a hew things with the XmlElement, XmlNode and XmlDocument classes of System.Xml namespace.<\/p>\n<p>These include:<\/p>\n<ul>\n<li>ReadXmlElementAttr<\/li>\n<li>CreateAttributeWithValue<\/li>\n<li>SetAttributeValue<\/li>\n<li>AppendElementWithText<\/li>\n<li>AppendElementWithCDATA<\/li>\n<\/ul>\n<pre><span style=\"color: #0000ff;\">using<\/span>\u00a0System.Xml;\r\n\r\n\u00a0\u00a0\u00a0 <span style=\"color: #0000ff;\">public\u00a0static\u00a0class<\/span>\u00a0XmlElementEx\r\n\u00a0\u00a0\u00a0\u00a0{\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #0000ff;\">public\u00a0static\u00a0string<\/span>\u00a0ReadXmlElementAttr(<span style=\"color: #0000ff;\">this\u00a0XmlElement<\/span>\u00a0e,\u00a0<span style=\"color: #0000ff;\">string\u00a0<\/span>attrName,\u00a0<span style=\"color: #0000ff;\">string\u00a0<\/span>defaultValue\u00a0=\u00a0\"\")\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0{\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #0000ff;\">try<\/span>\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0{\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #0000ff;\">if\u00a0<\/span>(e.HasAttribute(attrName))\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #0000ff;\">return\u00a0<\/span>e.Attributes.GetNamedItem(attrName).Value;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #0000ff;\">catch\u00a0<\/span>{\u00a0}\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #0000ff;\">return\u00a0<\/span>defaultValue;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #0000ff;\">public\u00a0static\u00a0string<\/span>\u00a0ReadXmlElementAttr(<span style=\"color: #0000ff;\">this\u00a0XmlNode<\/span>\u00a0e,\u00a0<span style=\"color: #0000ff;\">string\u00a0<\/span>attrName,\u00a0<span style=\"color: #0000ff;\">string\u00a0<\/span>defaultValue\u00a0=\u00a0\"\")\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0{\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #0000ff;\">return\u00a0<\/span>ReadXmlElementAttr((<span style=\"color: #0000ff;\">XmlElement<\/span>)e,\u00a0attrName,\u00a0defaultValue);\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #0000ff;\">public\u00a0static\u00a0XmlAttribute<\/span>\u00a0CreateAttributeWithValue(<span style=\"color: #0000ff;\">this\u00a0XmlDocument<\/span>\u00a0xml,\u00a0<span style=\"color: #0000ff;\">string\u00a0<\/span>attrName,\u00a0<span style=\"color: #0000ff;\">bool\u00a0<\/span>value)\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0{\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #0000ff;\">return\u00a0<\/span>xml.CreateAttributeWithValue(attrName,\u00a0value.ToString());\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #0000ff;\">public\u00a0static\u00a0XmlAttribute<\/span>\u00a0CreateAttributeWithValue(<span style=\"color: #0000ff;\">this\u00a0XmlDocument<\/span>\u00a0xml,\u00a0<span style=\"color: #0000ff;\">string\u00a0<\/span>attrName,\u00a0<span style=\"color: #0000ff;\">int\u00a0<\/span>value)\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0{\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #0000ff;\">return\u00a0<\/span>xml.CreateAttributeWithValue(attrName,\u00a0value.ToString());\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #0000ff;\">public\u00a0static\u00a0XmlAttribute<\/span>\u00a0CreateAttributeWithValue(<span style=\"color: #0000ff;\">this\u00a0XmlDocument<\/span>\u00a0xml,\u00a0string\u00a0attrName,\u00a0long\u00a0value)\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0{\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #0000ff;\">return\u00a0<\/span>xml.CreateAttributeWithValue(attrName,\u00a0value.ToString());\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #0000ff;\">public\u00a0static\u00a0XmlAttribute<\/span>\u00a0CreateAttributeWithValue(<span style=\"color: #0000ff;\">this\u00a0XmlDocument<\/span>\u00a0xml,\u00a0<span style=\"color: #0000ff;\">string\u00a0<\/span>attrName,\u00a0<span style=\"color: #0000ff;\">string<\/span>\u00a0value)\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0{\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #0000ff;\">XmlAttribute\u00a0<\/span>attr;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0attr\u00a0=\u00a0xml.CreateAttribute(attrName);\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0attr.Value\u00a0=\u00a0value;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #0000ff;\">return\u00a0<\/span>attr;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #0000ff;\">public\u00a0static\u00a0XmlAttribute<\/span>\u00a0SetAttributeValue(<span style=\"color: #0000ff;\">this\u00a0XmlNode<\/span>\u00a0e,\u00a0<span style=\"color: #0000ff;\">string\u00a0<\/span>attrName,\u00a0<span style=\"color: #0000ff;\">string\u00a0<\/span>value)\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0{\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #0000ff;\">return\u00a0<\/span>SetAttributeValue((XmlElement)e,\u00a0attrName,\u00a0value);\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #0000ff;\">public\u00a0static\u00a0XmlAttribute<\/span>\u00a0SetAttributeValue(<span style=\"color: #0000ff;\">this\u00a0XmlElement<\/span>\u00a0e,\u00a0<span style=\"color: #0000ff;\">string<\/span>\u00a0attrName,\u00a0<span style=\"color: #0000ff;\">string<\/span>\u00a0value)\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0{\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #0000ff;\">if\u00a0<\/span>(e.HasAttribute(attrName))\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0e.Attributes[attrName].Value\u00a0=\u00a0value;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #0000ff;\">else<\/span>\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0e.Attributes.Append(CreateAttributeWithValue(e.OwnerDocument,\u00a0attrName,\u00a0value));\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #0000ff;\">return\u00a0<\/span>e.Attributes[attrName];\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #0000ff;\">public\u00a0static\u00a0XmlElement<\/span>\u00a0AppendElementWithText(<span style=\"color: #0000ff;\">this\u00a0XmlElement<\/span>\u00a0e,\u00a0<span style=\"color: #0000ff;\">string\u00a0<\/span>elementName,\u00a0<span style=\"color: #0000ff;\">string\u00a0<\/span>text)\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0{\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #0000ff;\">XmlElement\u00a0<\/span>newElement\u00a0=\u00a0e.OwnerDocument.CreateElement(elementName);\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0newElement.InnerText\u00a0=\u00a0text;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0e.AppendChild(newElement);\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #0000ff;\">return\u00a0<\/span>newElement;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #0000ff;\">public\u00a0static\u00a0XmlElement<\/span>\u00a0AppendElementWithCDATA(<span style=\"color: #0000ff;\">this\u00a0XmlElement<\/span>\u00a0e,\u00a0<span style=\"color: #0000ff;\">string\u00a0<\/span>elementName,\u00a0<span style=\"color: #0000ff;\">string\u00a0<\/span>cdataText)\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0{\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #0000ff;\">XmlElement\u00a0<\/span>newElement\u00a0=\u00a0e.OwnerDocument.CreateElement(elementName);\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #0000ff;\">XmlCDataSection\u00a0<\/span>commentNode\u00a0=\u00a0e.OwnerDocument.CreateCDataSection(cdataText);\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0newElement.AppendChild(commentNode);\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0e.AppendChild(newElement);\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #0000ff;\">return\u00a0<\/span>newElement;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}\r\n\u00a0\u00a0\u00a0\u00a0}<\/pre>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>I thought I&#8217;d just share a few extension methods I created for myself to handle a hew things with the XmlElement, XmlNode and XmlDocument classes of System.Xml namespace. These include: ReadXmlElementAttr CreateAttributeWithValue SetAttributeValue AppendElementWithText AppendElementWithCDATA using\u00a0System.Xml; \u00a0\u00a0\u00a0 public\u00a0static\u00a0class\u00a0XmlElementEx \u00a0\u00a0\u00a0\u00a0{ \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0public\u00a0static\u00a0string\u00a0ReadXmlElementAttr(this\u00a0XmlElement\u00a0e,\u00a0string\u00a0attrName,\u00a0string\u00a0defaultValue\u00a0=\u00a0&#8220;&#8221;) &hellip;<\/p>\n<p class=\"read-more\"><a href=\"https:\/\/hen.co.za\/blog\/2011\/08\/xmlelementex-a-few-xmlelement-extension-methods\/\">Read more &raquo;<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3],"tags":[7,8,9,303,34],"class_list":["post-490","post","type-post","status-publish","format-standard","hentry","category-development","tag-net","tag-c","tag-code","tag-development","tag-xml"],"_links":{"self":[{"href":"https:\/\/hen.co.za\/blog\/wp-json\/wp\/v2\/posts\/490","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/hen.co.za\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/hen.co.za\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/hen.co.za\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/hen.co.za\/blog\/wp-json\/wp\/v2\/comments?post=490"}],"version-history":[{"count":1,"href":"https:\/\/hen.co.za\/blog\/wp-json\/wp\/v2\/posts\/490\/revisions"}],"predecessor-version":[{"id":491,"href":"https:\/\/hen.co.za\/blog\/wp-json\/wp\/v2\/posts\/490\/revisions\/491"}],"wp:attachment":[{"href":"https:\/\/hen.co.za\/blog\/wp-json\/wp\/v2\/media?parent=490"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/hen.co.za\/blog\/wp-json\/wp\/v2\/categories?post=490"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/hen.co.za\/blog\/wp-json\/wp\/v2\/tags?post=490"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}