저는 C #에서 Visual-studio 2012에서 작업하고 있습니다. 주어진 xslt (Template.xslt) 파일에서 총 템플릿 수의 이름을 얻고 싶습니다. 아래 코드는 첫 번째 템플릿 만 제공합니다.
List<string> listTemplates = new List<string>();
XmlDocument xslDoc = new XmlDocument();
xslDoc.Load("Template.xslt");
XmlNamespaceManager nsMgr = new XmlNamespaceManager(xslDoc.NameTable);
nsMgr.AddNamespace("xsl", "http://www.w3.org/1999/XSL/Transform");
XmlAttribute valueOf = (XmlAttribute)xslDoc.SelectSingleNode("/xsl:stylesheet/xsl:template/@name", nsMgr);
XSLT 파일에서 모든 템플릿 이름을 얻는 방법을 알려주십시오.
System.Linq.XElement를 사용하는 아래 방법을 사용할 수 있습니다.
public static IEnumerable<string> GetTemplateNames(string xsltPath)
{
var xsl = XElement.Load(xsltPath);
return xsl.Elements("{http://www.w3.org/1999/XSL/Transform}template")
.Where(temp => temp.Attribute("name") != null)
.Select(temp => temp.Attribute("name").Value);
}
또는 코드를 약간 수정하여 동일한 결과를 얻을 수 있습니다.
List<string> listTemplates = new List<string>();
XmlDocument xslDoc = new XmlDocument();
xslDoc.Load("Template.xslt");
XmlNamespaceManager nsMgr = new XmlNamespaceManager(xslDoc.NameTable);
nsMgr.AddNamespace("xsl", "http://www.w3.org/1999/XSL/Transform");
var nameAttributes = xslDoc
.SelectNodes("/xsl:stylesheet/xsl:template/@name", nsMgr)
.Cast<XmlAttribute>();
var names=nameAttributes.Select(n => n.Value);
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다