private XmlNode FindXmlNode(string xpath, string prefixes) { XmlNode node = null; if (prefixes == null || prefixes.Length < 1) { node = _doc.SelectSingleNode(xpath); } else { XmlNamespaceManager nsm = new XmlNamespaceManager(_doc.NameTable); XSLTExtension.FillXmlNamespaceManager(nsm, prefixes); //int i = 0; //string[] prefixList = prefixes.Split('|'); //while (i < prefixList.Length) //{ // string prefix = prefixList[i].Trim(); // if (++i >= prefixList.Length) break; // string nsURI = prefixList[i++].Trim(); // nsm.AddNamespace(prefix, nsURI); //} node = _doc.SelectSingleNode(xpath, nsm); } return(node); }
public bool TransformString(string sourceString, ref string targetString, XSLTExtensionTypes extType) { try { StringBuilder sb = new StringBuilder(); using (StringWriter sw = new StringWriter(sb)) { using (StringReader sr = new StringReader(sourceString)) { using (XmlTextReader xtr = new XmlTextReader(sr)) { using (XmlTextWriter stw = new XmlTextWriter(sw)) { stw.Formatting = Formatting.Indented; XsltArgumentList arg = XSLTExtension.GetXsltArgumentList(extType, sourceString); bool res = TransformXmlWithExtension(xtr, stw, arg); if (res) { targetString = sb.ToString(); } return(res); } } } } } catch (Exception err) { NotifyError(err); return(false); } }