+2006-11-10 Atsushi Enomoto <atsushi@ximian.com>
+
+ * XPathNavigatorReader.cs : removed node type restriction on
+ initialization. Fixed bug #79874, when tied to XPathNavigator fix.
+
2006-10-11 Atsushi Enomoto <atsushi@ximian.com>
* XPathEditableDocument.cs : (XmlDocumentEditableNavigator)
{\r
public XPathNavigatorReader (XPathNavigator nav)\r
{\r
- switch (nav.NodeType) {\r
- case XPathNodeType.Element:\r
- case XPathNodeType.Root:\r
- break;\r
- default:\r
- throw new InvalidOperationException (String.Format ("NodeType {0} is not supported to read as a subtree of an XPathNavigator.", nav.NodeType));\r
- }\r
current = nav.Clone ();\r
}\r
\r
+2006-11-10 Atsushi Enomoto <atsushi@ximian.com>
+
+ * XPathNavigator.cs : InnerXml should allow Text-only content. Fixed
+ bug #79874, when tied to XPathNavigatorReader fix.
+
2006-04-10 Atsushi Enomoto <atsushi@ximian.com>
* XPathNavigator.cs : get_OuterXml() returns indented output, without
if (NodeType != XPathNodeType.Root)
r.Read ();
StringWriter sw = new StringWriter ();
- XmlWriter xtw = XmlWriter.Create (sw);
+ XmlWriterSettings s = new XmlWriterSettings ();
+ s.ConformanceLevel = ConformanceLevel.Fragment;
+ s.OmitXmlDeclaration = true;
+ XmlWriter xtw = XmlWriter.Create (sw, s);
while (!r.EOF && r.Depth > depth)
xtw.WriteNode (r, false);
return sw.ToString ();
XmlWriterSettings s = new XmlWriterSettings ();
s.Indent = true;
s.OmitXmlDeclaration = true;
+ s.ConformanceLevel = ConformanceLevel.Fragment;
StringBuilder sb = new StringBuilder ();
using (XmlWriter w = XmlWriter.Create (sb, s)) {
WriteSubtree (w);
+2006-10-27 Atsushi Enomoto <atsushi@ximian.com>
+
+ * XPathNavigatorTests.cs : added test for bug #79874.
+
2006-10-27 Atsushi Enomoto <atsushi@ximian.com>
* XPathNavigatorTests.cs : added (kind of) test for bug #46751.
nav.MoveToFirstChild ();
long l = nav.ValueAsLong;
}
+
+ [Test] // bug #79874
+ public void InnerXmlText ()
+ {
+ StringReader sr = new StringReader ("<Abc><Foo>Hello</Foo></Abc>");
+ XPathDocument doc = new XPathDocument (sr);
+ XPathNavigator nav = doc.CreateNavigator ();
+ XPathNodeIterator iter = nav.Select ("/Abc/Foo");
+ iter.MoveNext ();
+ AssertEquals ("#1", "Hello", iter.Current.InnerXml);
+ AssertEquals ("#2", "<Foo>Hello</Foo>", iter.Current.OuterXml);
+ iter = nav.Select ("/Abc/Foo/text()");
+ iter.MoveNext ();
+ AssertEquals ("#3", String.Empty, iter.Current.InnerXml);
+ AssertEquals ("#4", "Hello", iter.Current.OuterXml);
+ }
#endif
}
}