projects
/
mono.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
2003-02-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
[mono.git]
/
mcs
/
class
/
System.XML
/
System.Xml
/
XmlNamedNodeMap.cs
diff --git
a/mcs/class/System.XML/System.Xml/XmlNamedNodeMap.cs
b/mcs/class/System.XML/System.Xml/XmlNamedNodeMap.cs
index 04a6dfc14de16068980824975126a3b95372f3a0..756b30d18b6e0206f0675580e57f21a7de408658 100644
(file)
--- a/
mcs/class/System.XML/System.Xml/XmlNamedNodeMap.cs
+++ b/
mcs/class/System.XML/System.Xml/XmlNamedNodeMap.cs
@@
-17,6
+17,7
@@
namespace System.Xml
{
XmlNode parent;
ArrayList nodeList;
{
XmlNode parent;
ArrayList nodeList;
+ bool readOnly = false;
internal XmlNamedNodeMap (XmlNode parent)
{
internal XmlNamedNodeMap (XmlNode parent)
{
@@
-45,8
+46,8
@@
namespace System.Xml
public virtual XmlNode GetNamedItem (string localName, string namespaceURI)
{
foreach (XmlNode node in nodeList) {
public virtual XmlNode GetNamedItem (string localName, string namespaceURI)
{
foreach (XmlNode node in nodeList) {
- if ((node.Name == localName)
- && (
parent
.NamespaceURI == namespaceURI))
+ if ((node.
Local
Name == localName)
+ && (
node
.NamespaceURI == namespaceURI))
return node;
}
return node;
}
@@
-62,23
+63,21
@@
namespace System.Xml
}
public virtual XmlNode RemoveNamedItem (string name)
}
public virtual XmlNode RemoveNamedItem (string name)
- {
- XmlNode removed = null;
-
+ {
foreach (XmlNode node in nodeList)
if (node.Name == name) {
foreach (XmlNode node in nodeList)
if (node.Name == name) {
- removed = node;
nodeList.Remove (node);
nodeList.Remove (node);
+ return node;
}
}
- return
removed
;
+ return
null
;
}
public virtual XmlNode RemoveNamedItem (string localName, string namespaceURI)
{
foreach (XmlNode node in nodeList)
}
public virtual XmlNode RemoveNamedItem (string localName, string namespaceURI)
{
foreach (XmlNode node in nodeList)
- if ((node.Name == localName)
- && (
parent
.NamespaceURI == namespaceURI)) {
+ if ((node.
Local
Name == localName)
+ && (
node
.NamespaceURI == namespaceURI)) {
nodeList.Remove (node);
return node;
}
nodeList.Remove (node);
return node;
}
@@
-88,16
+87,28
@@
namespace System.Xml
public virtual XmlNode SetNamedItem (XmlNode node)
{
public virtual XmlNode SetNamedItem (XmlNode node)
{
- XmlNode replaced = null;
-
+ return SetNamedItem(node, -1);
+ }
+
+ internal XmlNode SetNamedItem (XmlNode node, int pos)
+ {
+ if (readOnly || (node.OwnerDocument != parent.OwnerDocument))
+ throw new ArgumentException ("Cannot add to NodeMap.");
+
foreach (XmlNode x in nodeList)
foreach (XmlNode x in nodeList)
- if
(x.Name == node.Name
) {
+ if
(x.LocalName == node.LocalName && x.NamespaceURI == node.NamespaceURI
) {
nodeList.Remove (x);
nodeList.Remove (x);
- replaced = x;
+ nodeList.Add (node);
+ return x;
}
}
- nodeList.Add (node);
- return replaced;
+ if(pos < 0)
+ nodeList.Add (node);
+ else
+ nodeList.Insert(pos, node);
+ return null;
}
}
+
+ internal ArrayList Nodes { get { return nodeList; } }
}
}
}
}