public void ShouldGetValueFromSecondLevelElementWithNamespace() { const string xml = XmlHeader + "<a xmlns:atom='http://www.w3.org/2005/Atom'><atom:b><atom:c>valueC1</atom:c><atom:c>valueC2</atom:c><atom:d>valueD</atom:d><atom:e></atom:e><atom:f/><g>valueG</g></atom:b></a>"; dynamic dynamicObject = new DynamicXmlObject(xml); Assert.AreEqual("valueC1", dynamicObject.Element("b", "http://www.w3.org/2005/Atom").Element("c", "http://www.w3.org/2005/Atom")[0]); Assert.AreEqual("valueC2", dynamicObject.Element("b", "http://www.w3.org/2005/Atom").Element("c", "http://www.w3.org/2005/Atom")[1]); Assert.AreEqual("valueD", dynamicObject.Element("b", "http://www.w3.org/2005/Atom").Element("d", "http://www.w3.org/2005/Atom")); Assert.AreEqual(string.Empty, dynamicObject.Element("b", "http://www.w3.org/2005/Atom").Element("e", "http://www.w3.org/2005/Atom")); Assert.AreEqual(string.Empty, dynamicObject.Element("b", "http://www.w3.org/2005/Atom").Element("f", "http://www.w3.org/2005/Atom")); Assert.AreEqual("valueG", dynamicObject.Element("b", "http://www.w3.org/2005/Atom").g); }
public void ShouldThrowRuntimeBinderExceptionIfElementWithNamespaceDoesNotExist() { const string xml = XmlHeader + "<a xmlns:atom='http://www.w3.org/2005/Atom'></a>"; dynamic dynamicObject = new DynamicXmlObject(xml, shouldThrowOnInexistentElement: true); TestHelpers.ExpectExceptionTypeOf<RuntimeBinderException>(() => dynamicObject.Element("b", "http://www.w3.org/2005/Atom")); }
public void ShouldGetValueFromFirstLevelElementWithNamespace() { const string xml = XmlHeader + "<a xmlns:atom='http://www.w3.org/2005/Atom'><atom:b>valueB1</atom:b><atom:b>valueB2</atom:b><atom:c>valueC</atom:c><atom:d></atom:d><atom:e/><f>valueF</f></a>"; dynamic dynamicObject = new DynamicXmlObject(xml); Assert.AreEqual("valueB1", dynamicObject.Element("b", "http://www.w3.org/2005/Atom")[0]); Assert.AreEqual("valueB2", dynamicObject.Element("b", "http://www.w3.org/2005/Atom")[1]); Assert.AreEqual("valueC", dynamicObject.Element("c", "http://www.w3.org/2005/Atom")); Assert.AreEqual(string.Empty, dynamicObject.Element("d", "http://www.w3.org/2005/Atom")); Assert.AreEqual(string.Empty, dynamicObject.Element("e", "http://www.w3.org/2005/Atom")); Assert.AreEqual("valueF", dynamicObject.f); }