private string CleanCData(XNode xNode) { if (xNode is XCData) { XCData xdata = (XCData)xNode; return StripDiv( xdata.Value ); } return xNode.ToString(); }
public static string GetDiff(XNode expected, XNode actual, string diffResult = null) { if (diffResult == null) diffResult = ""; if (IsBasicNode(expected) && IsBasicNode(actual)) { if (!expected.ToString().Equals(actual.ToString())) { diffResult = String.Format("{0}{1} has different value:\r\n Expected: {2}\r\n But was: {3}\r\n\r\n", diffResult, ((XElement)actual).Name.LocalName, expected.ToString(), actual.ToString()); } return diffResult; } var expectedChildren = ((XElement)expected).Descendants().OrderBy(e => e.Name.LocalName).ToList(); var actualChildren = ((XElement)actual).Descendants().OrderBy(a => a.Name.LocalName).ToList(); var missingChildren = expectedChildren.Where(e => actualChildren.Where(a => e.Name == a.Name).Count() == 0); foreach (var missingChild in missingChildren) { diffResult = String.Format("{0}{1} has missing Property:\r\n {2}\r\n\r\n", diffResult, ((XElement)actual).Name.LocalName, missingChild.Name.LocalName); } var extraChildren = actualChildren.Where(a => expectedChildren.Where(e => a.Name == e.Name).Count() == 0); foreach (var extraChild in extraChildren) { diffResult = String.Format("{0}{1} has extra Property:\r\n {2}\r\n\r\n", diffResult, ((XElement)actual).Name.LocalName, extraChild.Name.LocalName); } foreach (var actualChild in actualChildren) { foreach (var expectedChild in expectedChildren) { if (expectedChild.Name.LocalName.Equals(actualChild.Name.LocalName, StringComparison.OrdinalIgnoreCase)) { diffResult = GetDiff(expectedChild, actualChild, diffResult); break; } } } //return diffResult; return ""; }
private static string UnescapeContent(XNode node) { var reader = new StringReader(node.ToString()); var settings = new XmlReaderSettings { ConformanceLevel = ConformanceLevel.Fragment }; using (var xmlReader = XmlReader.Create(reader, settings)) { xmlReader.MoveToContent (); return xmlReader.ReadString(); } }
protected void WriteNode(XNode node, TextWriter writer, DocItemWriterContext context) { if (node is XText || node is XCData) { WriteHyperlinkEnabledText(node.ToString(), writer, context); return; } XElement element = node as XElement; if (element != null) { switch (element.Name.ToString()) { case "see": { string cref = element.Attribute("cref").Value; string text = element.Value; WriteHyperlinkSymbol(cref, text, writer, context); } return; } } throw new ArgumentException(string.Format("[{0}]: Don't know how to print {1}.", this.AssociatedDocItem.Name, node.GetType().Name)); }
/// <summary> /// Renders the specified XNode. /// </summary> /// <param name="xNode">The <see cref="XNode">XNode</see>.</param> /// <returns></returns> public IHtmlString Markup(XNode xNode) { if (xNode == null) { return null; } // TODO: optimize so XNode doesn't get serialized/deserialized return _helper.Raw(xNode.ToString()); }
private string parseXml(XNode root, int tabs) { string result = "<br />"; if (root != null) { for (int i = 0; i < tabs; i++) { result += " "; } result += root.ToString(); } for (int i = 0; i < root.NodesAfterSelf().Count(); i++) { result += parseXml(root.NodesAfterSelf().ElementAt(i), tabs + 1); } return result; }
protected IEnumerable<OutputChunk> ChunkXml(XNode node) { return ChunkString(node.ToString(SaveOptions.DisableFormatting)); }
private string GetReplacementValueFromEvent(ReplacementEvent replacementEvent, XNode foundNode) { // may be a bug .... ex: with two view-selection under action performed List<NodeAndAttributeCouple> replaceableValues = GetReplacementParametersFromValue(replacementEvent.Value); string completedEvent = replacementEvent.Value; XElement element = XElement.Parse(foundNode.ToString()); for (int i = 0; i < replaceableValues.Count; i++) { if (string.Equals(replaceableValues[i].attrName, "TextValue", StringComparison.InvariantCultureIgnoreCase)) { string textValue = element.DescendantsAndSelf(replaceableValues[i].nodeName).ElementAt(0).Value.Trim(); if (completedEvent.Contains("{" + replaceableValues[i].nodeName + ":TextValue}")) { completedEvent = completedEvent.Replace("{" + replaceableValues[i].nodeName + ":TextValue}", textValue); } else { completedEvent = completedEvent.Replace("{TextValue}", textValue); } } else { if (element.DescendantsAndSelf(replaceableValues[i].nodeName).Attributes(replaceableValues[i].attrName).Count() >= replaceableValues[i].index) { string attrValue = element.DescendantsAndSelf(replaceableValues[i].nodeName).Attributes(replaceableValues[i].attrName).ElementAt(replaceableValues[i].index).Value.Trim(); if (completedEvent.Contains("{" + replaceableValues[i].nodeName + ":" + replaceableValues[i].attrName + "}")) { completedEvent = completedEvent.Replace("{" + replaceableValues[i].nodeName + ":" + replaceableValues[i].attrName + "}", attrValue); } else if (completedEvent.Contains("{" + replaceableValues[i].nodeName + ":" + replaceableValues[i].attrNameWithAt + "}")) { completedEvent = completedEvent.Replace("{" + replaceableValues[i].nodeName + ":" + replaceableValues[i].attrNameWithAt + "}", attrValue); } else if (completedEvent.Contains("{" + replaceableValues[i].attrName + "}")) { completedEvent = completedEvent.Replace("{" + replaceableValues[i].attrName + "}", attrValue); } } } } return completedEvent; }
private string GetParametrizedRepFromGenericOne(ReplacementEvent replacementEvent, XNode xNode) { // may be a bug .... ex: with two view-selection under action performed List<NodeAndAttributeCouple> replaceableValues = GetReplacementParametersFromValue(replacementEvent.Value); string completedEvent = replacementEvent.Value; XElement element = XElement.Parse(xNode.ToString()); for (int i = 0; i < replaceableValues.Count; i++) { if (string.Equals(replaceableValues[i].attrName, "TextValue", StringComparison.InvariantCultureIgnoreCase)) { string textValue = element.DescendantsAndSelf(replaceableValues[i].nodeName).ElementAt(0).Value; completedEvent = completedEvent.Replace("{TextValue}", textValue); } else { string attrValue = element.DescendantsAndSelf(replaceableValues[i].nodeName).Attributes(replaceableValues[i].attrName).ElementAt(0).Value; completedEvent = completedEvent.Replace("{" + replaceableValues[i].attrName + "}", attrValue); } } return completedEvent; }
/// <summary> /// Prepares the request based on the parameters. /// </summary> /// <param name="uri"> /// The uri. /// </param> /// <param name="method"> /// The method. /// </param> /// <param name="content"> /// The content. /// </param> /// <param name="contentType"> /// The content type. /// </param> /// <param name="timeoutMs"> /// The timeout milliseconds. /// </param> /// <returns> /// The <see cref="WebRequest"/>. /// </returns> private static WebRequest PrepareRequest(string uri, string method, XNode content, string contentType, int timeoutMs) { WebRequest request = WebRequest.Create(uri); request.Method = method; request.AuthenticationLevel = AuthenticationLevel.None; request.ImpersonationLevel = TokenImpersonationLevel.Anonymous; request.Timeout = timeoutMs; if (content != null) { string postData = content.ToString(); byte[] byteArray = Encoding.UTF8.GetBytes(postData); request.ContentType = contentType; request.ContentLength = byteArray.Length; Stream dataStream = request.GetRequestStream(); dataStream.Write(byteArray, 0, byteArray.Length); dataStream.Close(); } return request; }
private void SendCore(XNode element) { SendCore(element.ToString(SaveOptions.DisableFormatting)); }
private string ToPreviewString(XNode node) { if (node == null) return string.Empty; if (node is XElement) { var sbResult = new StringBuilder(); foreach (var childNode in (node as XElement).Nodes()) { sbResult.Append(ToPreviewString(childNode)); } return sbResult.ToString(); } return node.ToString(); }