public void SelectParentNode2() { XmlDocument doc = new XmlDocument(); doc.LoadXml( @"<root> <a type='3'/> <a> <b>d</b> </a> <a> <c type='z_val'/> </a> <a> <b>x</b> <c> <d type='x_val'/> </c> </a> <a> <b>y</b> <c> <d type='y_val'/> </c> </a> </root>"); XmlDocumentAlterer docAlter = new XmlDocumentAlterer(doc); Expression exp = new Expression("/root//d[2]/@type"); Expression xpath = new Expression("/root//d[2]/parent::*/parent::*/b"); Assert.AreEqual("y_val", docAlter.GetValue(exp, FailureReaction.Ignore)); Assert.AreEqual("y", docAlter.GetValue(xpath, FailureReaction.Ignore)); }
public void CreateElementWithRelativePath() { XmlDocument doc = new XmlDocument(); doc.LoadXml(@"<root> <a type='a_1'> <b>zxcv</b> <b>yuiop</b> </a> <a type='a_2'> <b>hjkl</b> <b>qwert</b> </a> </root>"); Assert.AreEqual(4, doc.SelectNodes("/root//b").Count); XmlDocumentAlterer alter = new XmlDocumentAlterer(doc); Assert.AreEqual(4, alter.CountNodes(new Expression("/root//b"))); Assert.AreEqual("hjkl", alter.GetValue("/root//b[3]", FailureReaction.Ignore)); Expression xpath = new Expression("/root//b[3]/../c"); alter.SetValue(xpath, "qqq"); Expression xpath2 = new Expression("/root/a[@type='a_2']/c"); Assert.AreEqual("qqq", alter.GetValue(xpath2, FailureReaction.Ignore)); }
public void EditLoadedDocumentWithNamespaceAndPrefix() { XmlDocument doc = new XmlDocument(); doc.LoadXml( @"<ns0:root xmlns:ns0=""http://www.icsm.org/icsmxml""> <ns0:a id='1'> <ns0:b id='9'>asdf</ns0:b> </ns0:a> <ns0:a id='2'> <ns0:b id='8'>qwer</ns0:b> </ns0:a> <ns0:a id='3'> <ns0:b id='4'>zxcv</ns0:b> </ns0:a> </ns0:root>" ); XmlDocumentAlterer docAlter = new XmlDocumentAlterer(doc); docAlter.AddNamespace("ns0", "http://www.icsm.org/icsmxml"); docAlter.SetValue(new Expression("/root/a[@id=1]/b/@t", "ns0"), "6"); docAlter.SetValue(new Expression("/root/a[2]/@id", "ns0"), "somtig"); docAlter.SetValue(new Expression("/root/a[@id='3']/b[@id=4]/c", "ns0"), "workit"); Assert.AreEqual("6", docAlter.GetValue(new Expression("/root/a[1]/b/@t", "ns0"), FailureReaction.Ignore)); Assert.AreEqual("somtig", docAlter.GetValue(new Expression("/root/a[2]/@id", "ns0"), FailureReaction.Ignore)); Assert.AreEqual("workit", docAlter.GetValue(new Expression("/root/a[3]/b/c", "ns0"), FailureReaction.Ignore)); }
public void EditLoadedDocument() { XmlDocument doc = new XmlDocument(); doc.LoadXml( @"<root> <a id='1'> <b id='9'>asdf</b> </a> <a id='2'> <b id='8'>qwer</b> </a> <a id='3'> <b id='4'>zxcv</b> </a> </root>" ); XmlDocumentAlterer docAlter = new XmlDocumentAlterer(doc); docAlter.SetValue(new Expression("/root/a[@id=1]/b/@t"), "6"); docAlter.SetValue(new Expression("/root/a[2]/@id"), "somtig"); docAlter.SetValue(new Expression("/root/a[@id='3']/b[@id=4]/c"), "workit"); Assert.AreEqual("6", docAlter.GetValue(new Expression("/root/a[1]/b/@t"), FailureReaction.Ignore)); Assert.AreEqual("somtig", docAlter.GetValue(new Expression("/root/a[2]/@id"), FailureReaction.Ignore)); Assert.AreEqual("workit", docAlter.GetValue(new Expression("/root/a[3]/b/c"), FailureReaction.Ignore)); }
public void SetValueFromStringExpression() { XmlDocumentAlterer docAlter = new XmlDocumentAlterer(); docAlter.SetValue("/root/a", "abc"); Assert.AreEqual("abc", docAlter.GetValue(new Expression("/root/a"), FailureReaction.Ignore)); }
public void RetrieveValueWithEmpty() { XmlDocument doc = new XmlDocument(); doc.LoadXml("<root><a>asdf</a></root>"); XmlDocumentAlterer docAlter = new XmlDocumentAlterer(doc); Assert.AreEqual("asdf", docAlter.GetValue("/root/a", FailureReaction.GenerateErrorOnEmpty)); }
public void RetrieveNullWithEmpty() { XmlDocument doc = new XmlDocument(); doc.LoadXml("<root></root>"); XmlDocumentAlterer docAlter = new XmlDocumentAlterer(doc); Assert.IsNull(docAlter.GetValue("/root/a", FailureReaction.GenerateErrorOnEmpty)); }
public void RetrieveEmptyWithNull() { XmlDocument doc = new XmlDocument(); doc.LoadXml("<root><a/></root>"); XmlDocumentAlterer docAlter = new XmlDocumentAlterer(doc); Assert.AreEqual(0, docAlter.GetValue("/root/a", FailureReaction.GenerateErrorOnNull).Length); }
public void RetrieveNullWithIgnore() { XmlDocument doc = new XmlDocument(); doc.LoadXml("<root></root>"); XmlDocumentAlterer docAlter = new XmlDocumentAlterer(doc); Assert.IsNull(docAlter.GetValue("/root/a", FailureReaction.Ignore)); }
public void GetValueFromStingExpression() { XmlDocument doc = new XmlDocument(); doc.LoadXml("<root><a>asdf</a></root>"); XmlDocumentAlterer docAlter = new XmlDocumentAlterer(doc); Assert.AreEqual("asdf", docAlter.GetValue("/root/a", FailureReaction.Ignore)); }
public void Set_GetValue() { XmlDocumentAlterer docAlter = new XmlDocumentAlterer(); Expression xpath = new Expression("/root/a"); string value = "gah"; docAlter.SetValue(xpath, value); Assert.AreEqual(value, docAlter.GetValue(xpath, FailureReaction.Ignore)); }
public void EditDocument_2() { XmlDocument doc = new XmlDocument(); doc.LoadXml( @"<?xml version=""1.0"" encoding=""utf-8""?> <ICSMXML xmlns:xsd=""http://www.w3.org/2001/XMLSchema"" xmlns:xsi=""http://www.w3.org/2001/XMLSchema-instance"" xmlns=""http://www.icsm.com/icsmxml""> <Request deploymentMode=""test""> <OrderRequest> <OrderRequestHeader orderDate=""2007-05-24"" dueDate=""2007-05-27"" orderID=""1203074043"" type=""new"" orderType=""regular"" shippingType=""header"" billCustomer=""no""> <CustomerIdentification> <CustomerInfo name=""AccountNumber"">0</CustomerInfo> <CustomerInfo name=""CustomerPONumber"">1</CustomerInfo> <CorporateInfo name=""AccountNumber"">254490</CorporateInfo> <CorporateInfo name=""PurchaseOrder""></CorporateInfo> <CorporateInfo name=""StoreNumber"">9999</CorporateInfo> </CustomerIdentification> </OrderRequestHeader> </OrderRequest> </Request> </ICSMXML>" ); XmlDocumentAlterer docAlter = new XmlDocumentAlterer(doc); docAlter.AddNamespace("ns0", "http://www.icsm.com/icsmxml"); Expression xpath = new Expression("/ICSMXML/Request/OrderRequest/OrderRequestHeader/CustomerIdentification/CorporateInfor[@name=SourceCode]", "ns0"); docAlter.SetValue(xpath, "XYZ"); Assert.AreEqual("XYZ", docAlter.GetValue(xpath, FailureReaction.Ignore)); }
public void GetValue_null() { XmlDocumentAlterer docAlter = new XmlDocumentAlterer(); Assert.IsNull(docAlter.GetValue(new Expression("/root/a/b"), FailureReaction.Ignore)); }