1. 首先,使用 `ciscoxmlin` 工具生成 XML 文件。例如,您可以使用以下命令导出配置数据并将其保存为 XML 文件:
```
ciscoxmlin -x -c <config_file>-o <output_file>.xml
```
2. 然后,将生成的 XML 文件转换为 `edit_config` 格式。您可以使用 `xsltproc` 工具执行此 *** 作。以下是一个示例命令:
```
xsltproc --stringparam operation merge --stringparam format xml <path_to_xslt_file>/cisco-nx-xslt.xsl <input_file>.xml
```
其中,`<path_to_xslt_file>` 是 `cisco-nx-xslt.xsl` 文件所在的路径,`<input_file>.xml` 是您导出的 XML 文件名。
3. 通过以上步骤,您已将 `ciscoxmlin` 的输出转换为 `edit_config` 格式。您可以将输出结果直接传递给任何支持 `edit_config` 的设备或系统。
希望以上信息对您有所帮助!如果您还有其他问题,请随时问我。
有两种方法:1)内嵌脚本, 2)使用扩展对象使用内嵌脚本的方法,MSDN上已经有比较清楚的描述: Script Blocks Using msxsl:script。但对扩展对象的描述好像并不清晰。其实扩展对象比内嵌更为强大。举个例子,假设我们想知道自己所关心城市的天气,我们用一个xml来描述:
<?xmlversion="1.0"encoding="utf-8" ?>
<china>
<city>Shanghai</city>
<city>Beijing</city>
</china>
在这里我们想知道上海和北京两地的天气,并希望通过一个XSLT来转换出如下结果:
<Report>
<Cityname="Shanghai">多云</City>
<Cityname="Beijing">小雨</City>
</Report>
天气预报是通过调用一个web服务得到的。可以想象,单纯的XSLT绝对没办法把这事简单搞定。不过通过扩展对象,这件事情就变得异常简单了。
首先我们创建一个扩展对象:
public class WeatherReport
{
public string GetReport(string city)
{
return "weather of " + city
}
}
这个对象支持一个方法:根据城市名称返回其天气。为简单起见,我们返回"weather of"加城市名字。在具体的应用中可以去调用具体的web服务。
下面这段代码实现将结果输出到屏幕上:
private static void ShowWeather(string xmlFile, string xsltFile)
{
XmlDocument xmldoc = new XmlDocument()
xmldoc.Load(xmlFile)
XmlDocument xsltDoc = new XmlDocument()
xsltDoc.Load(xsltFile)
XslCompiledTransform xslt = new XslCompiledTransform()
xslt.Load(xsltDoc.CreateNavigator())
XmlTextWriter writer = new XmlTextWriter(Console.Out)
writer.Formatting = Formatting.Indented
XsltArgumentList xsltArgList = new XsltArgumentList()
xsltArgList.AddExtensionObject("urn:my.xslt.extension", new WeatherReport())
xslt.Transform(xmldoc, xsltArgList, writer)
writer.Close()
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)