0
基本上,我有一些我写的xslt,我想将相同的功能迁移到C#。我知道我必须使用XPath等,但我无法正确访问正确的节点和属性。如何将这个XSLT重写为C#并获得相同的结果?
这里是我想翻译的功能:
<xsl:for-each select="$mediaNode/node">
<xsl:variable name="mediaNodeName" select="translate(@nodeName, '_', '')"/>
<xsl:if test="Exslt.ExsltStrings:lowercase(substring($mediaNodeName, 1, $MainNodeNameLength)) = Exslt.ExsltStrings:lowercase($MainNodeName)">
<!-- do stuff with @nodeName and such -->
</xsl:if>
</xsl:for-each>
这个XSLT模板花费$ galleryOf作为参数,这是一把umbraco XML NODEID的一个int,它需要$ MainNodeName这是我将在该循环内进行比较的文本。
我只需要一些帮助,弄清楚如何以我在这里做的时尚,但使用C#来获得每个节点。
这是我一直努力着:
public static string GetGalleryById(int mediaNodeID, string filename)
{
string results = "";
// if node exists then look for images
if (mediaNodeID > 0)
{
// get a node iterator for the media node section passed in
XPathNodeIterator xni = umbraco.library.GetMedia(mediaNodeID, false);
xni = xni.Current.SelectChildren("node", "");
// loop through all of the images in the folder to find ones that match the @param filename
while (xni.MoveNext())
{
string currentName =
currentName = currentName.Replace("_", "");
// // if there's a match then get build the html and add to results
// if (currentName.Substring(1, filename.Length).ToLower() == filename.ToLower())
return results;
}
// otherwise, return no result.
else
{
return "Nothing to see here...";
}
}
谢谢!