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...";
}
}
謝謝!