Ejemplo n.º 1
0
        private void ReadMetadata(XmlDocument doc, XmlNamespaceManager xmlnsManager)
        {
            metadata = new UEPubMetadata();

            // Required properties
            metadata.title      = doc.SelectSingleNode("/ns:package/ns:metadata/dc:title", xmlnsManager).InnerText;
            metadata.language   = doc.SelectSingleNode("/ns:package/ns:metadata/dc:language", xmlnsManager).InnerText;
            metadata.identifier = doc.SelectSingleNode("/ns:package/ns:metadata/dc:identifier", xmlnsManager).InnerText;

            // Optional props
            SetMetadataProperty(ref metadata.creator, "/ns:package/ns:metadata/dc:creator", doc, xmlnsManager);
            SetMetadataProperty(ref metadata.contributor, "/ns:package/ns:metadata/dc:contributor", doc, xmlnsManager);
            SetMetadataProperty(ref metadata.coverage, "/ns:package/ns:metadata/dc:coverage", doc, xmlnsManager);
            SetMetadataProperty(ref metadata.description, "/ns:package/ns:metadata/dc:description", doc, xmlnsManager);
            SetMetadataProperty(ref metadata.format, "/ns:package/ns:metadata/dc:format", doc, xmlnsManager);
            SetMetadataProperty(ref metadata.publisher, "/ns:package/ns:metadata/dc:publisher", doc, xmlnsManager);
            SetMetadataProperty(ref metadata.relation, "/ns:package/ns:metadata/dc:relation", doc, xmlnsManager);
            SetMetadataProperty(ref metadata.rights, "/ns:package/ns:metadata/dc:rights", doc, xmlnsManager);
            SetMetadataProperty(ref metadata.source, "/ns:package/ns:metadata/dc:source", doc, xmlnsManager);
            SetMetadataProperty(ref metadata.subject, "/ns:package/ns:metadata/dc:subject", doc, xmlnsManager);
            SetMetadataProperty(ref metadata.type, "/ns:package/ns:metadata/dc:type", doc, xmlnsManager);

            // Date

            var node = doc.SelectSingleNode("/ns:package/ns:metadata/dc:date", xmlnsManager);

            if (node != null)
            {
                metadata.date = DateTime.ParseExact(node.InnerText, "yyyy-MM-dd", System.Globalization.CultureInfo.InvariantCulture);
            }
        }
Ejemplo n.º 2
0
        private void ReadMetadata(XmlDocument doc, XmlNamespaceManager xmlnsManager)
        {
            metadata = new UEPubMetadata ();

            // Required properties
            metadata.title = doc.SelectSingleNode ("/ns:package/ns:metadata/dc:title", xmlnsManager).InnerText;
            metadata.language = doc.SelectSingleNode ("/ns:package/ns:metadata/dc:language", xmlnsManager).InnerText;
            metadata.identifier = doc.SelectSingleNode ("/ns:package/ns:metadata/dc:identifier", xmlnsManager).InnerText;

            // Optional props
            SetMetadataProperty (ref metadata.creator, "/ns:package/ns:metadata/dc:creator", doc, xmlnsManager);
            SetMetadataProperty (ref metadata.contributor, "/ns:package/ns:metadata/dc:contributor", doc, xmlnsManager);
            SetMetadataProperty (ref metadata.coverage, "/ns:package/ns:metadata/dc:coverage", doc, xmlnsManager);
            SetMetadataProperty (ref metadata.description, "/ns:package/ns:metadata/dc:description", doc, xmlnsManager);
            SetMetadataProperty (ref metadata.format, "/ns:package/ns:metadata/dc:format", doc, xmlnsManager);
            SetMetadataProperty (ref metadata.publisher, "/ns:package/ns:metadata/dc:publisher", doc, xmlnsManager);
            SetMetadataProperty (ref metadata.relation, "/ns:package/ns:metadata/dc:relation", doc, xmlnsManager);
            SetMetadataProperty (ref metadata.rights, "/ns:package/ns:metadata/dc:rights", doc, xmlnsManager);
            SetMetadataProperty (ref metadata.source, "/ns:package/ns:metadata/dc:source", doc, xmlnsManager);
            SetMetadataProperty (ref metadata.subject, "/ns:package/ns:metadata/dc:subject", doc, xmlnsManager);
            SetMetadataProperty (ref metadata.type, "/ns:package/ns:metadata/dc:type", doc, xmlnsManager);

            // Date

            var node = doc.SelectSingleNode ("/ns:package/ns:metadata/dc:date", xmlnsManager);

            if (node != null) {
                metadata.date = DateTime.ParseExact(node.InnerText, "yyyy-MM-dd", System.Globalization.CultureInfo.InvariantCulture);
            }
        }