コード例 #1
0
ファイル: XPathWorkbench.cs プロジェクト: ra2003/XPathTools
        public IList <SearchResult> Search(string xpath)
        {
            if (string.IsNullOrWhiteSpace(xpath))
            {
                return(new SearchResult[0]);
            }

            var rootElement = _repository.GetRootElement();

            if (rootElement == null)
            {
                return(new SearchResult[0]);
            }

            try
            {
                var namespaceResolver = new SimpleXmlNamespaceResolver(rootElement.Document);
                var matches           = rootElement.Document?.XPathEvaluate(xpath, namespaceResolver);
                var searchResults     = _searchResultFactory.Parse(matches);
                return(searchResults);
            }
            catch (Exception ex)
            {
                throw new InvalidOperationException(PackageResources.XPathEvaluationErrorText, ex);
            }
        }
コード例 #2
0
        public void NamespacePrefixesAreParsedCorrectly(string xml, string[] expectedNamespaces)
        {
            // Arrange
            var document = XDocument.Parse(xml);

            // Act
            var manager    = new SimpleXmlNamespaceResolver(document);
            var namespaces = manager.GetNamespacesInScope(XmlNamespaceScope.All).Values;

            // Assert
            Assert.That(namespaces, Is.EquivalentTo(expectedNamespaces));
        }
        public void NamespacePrefixesAreParsedCorrectly(string xml, string[] expectedNamespaces)
        {
            // Arrange
            var document = XDocument.Parse(xml);

            // Act
            var manager = new SimpleXmlNamespaceResolver(document);
            var namespaces = manager.GetNamespacesInScope(XmlNamespaceScope.All).Values;

            // Assert
            Assert.That(namespaces, Is.EquivalentTo(expectedNamespaces));
        }