Core.Xml - support XPathExpression

This commit is contained in:
Stephan
2013-04-10 12:47:11 -02:00
parent 495b661263
commit 83308c3d5f
4 changed files with 157 additions and 3 deletions

View File

@@ -1,4 +1,5 @@
using System.Linq;
using System.Xml.XPath;
using Umbraco.Core.Dynamics;
using Umbraco.Core.Xml;
using Umbraco.Web.Models;
@@ -36,6 +37,19 @@ namespace Umbraco.Web
return content == null ? new DynamicNull() : new DynamicPublishedContent(content).AsDynamic();
}
/// <summary>
/// Gets a dynamic content resulting from an XPath query.
/// </summary>
/// <param name="cache">The contextual cache.</param>
/// <param name="xpath">The XPath query.</param>
/// <param name="vars">Optional XPath variables</param>
/// <returns>The dynamic content, or null.</returns>
public static dynamic GetDynamicSingleByXPath(this ContextualPublishedContentCache cache, XPathExpression xpath, params XPathVariable[] vars)
{
var content = cache.GetSingleByXPath(xpath, vars);
return content == null ? new DynamicNull() : new DynamicPublishedContent(content).AsDynamic();
}
/// <summary>
/// Gets dynamic contents resulting from an XPath query.
/// </summary>
@@ -49,6 +63,19 @@ namespace Umbraco.Web
return new DynamicPublishedContentList(content.Select(c => new DynamicPublishedContent(c)));
}
/// <summary>
/// Gets dynamic contents resulting from an XPath query.
/// </summary>
/// <param name="cache">The contextual cache.</param>
/// <param name="xpath">The XPath query.</param>
/// <param name="vars">Optional XPath variables</param>
/// <returns>The dynamic contents.</returns>
public static dynamic GetDynamicByXPath(this ContextualPublishedContentCache cache, XPathExpression xpath, params XPathVariable[] vars)
{
var content = cache.GetByXPath(xpath, vars);
return new DynamicPublishedContentList(content.Select(c => new DynamicPublishedContent(c)));
}
/// <summary>
/// Gets dynamic contents at root.
/// </summary>