protected override void ProcessDataNode(System.Xml.XmlDocument doc, System.Xml.XmlNamespaceManager namespaces) { namespaces.AddNamespace("contact", "urn:ietf:params:xml:ns:contact-1.0"); var children = doc.SelectSingleNode("//contact:creData", namespaces); if (children != null) { XmlNode node; // ContactId node = children.SelectSingleNode("contact:id", namespaces); if (node != null) { ContactId = node.InnerText; } // DateCreated node = children.SelectSingleNode("contact:crDate", namespaces); if (node != null) { DateCreated = node.InnerText; } } }
/// <summary> /// 对 本结点(xNode) 的 Namespace 注册 /// </summary> /// <param name="xNode">含有或继承有命名空间的结点</param> /// <param name="xNameSpaceManager">命名空间管理器</param> /// <returns>返回该 Namespace 的 prefix</returns> public static string AutoPrefix(System.Xml.XmlNode xNode, System.Xml.XmlNamespaceManager xNameSpaceManager) { string xPrefix; if (xNode.NamespaceURI == string.Empty) { return string.Empty; } else { xPrefix = xNameSpaceManager.LookupPrefix(xNode.NamespaceURI); if (xPrefix == null || xPrefix == string.Empty) { xPrefix = "x" + xNode.GetHashCode().ToString(); xNameSpaceManager.AddNamespace(xPrefix, xNode.NamespaceURI); } return xPrefix + (xPrefix.Length > 0 ? ":" : ""); } }