63

GO进阶训练营【完结】

 3 years ago
source link: https://studygolang.com/articles/34888
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

download:GO进阶训练营【完结】

需要引用下面的命名空间:
1
2
using System.Xml;
using System.Xml.Xsl;
方法实现:
1
2
3
4
5
6
7
8
9
public static string ConvertXML(XmlDocument InputXMLDocument, string XSLTFilePath
, XsltArgumentList XSLTArgs)
{
System.IO.StringWriter sw = new System.IO.StringWriter();
XslCompiledTransform xslTrans = new XslCompiledTransform();
xslTrans.Load(XSLTFilePath);
xslTrans.Transform(InputXMLDocument.CreateNavigator(), XSLTArgs, sw);
return sw.ToString();
}
示例xml文件如下:

1
2
3
4
5
6
7
8
9
10
11
12
<?xml version="1.0" encoding="utf-8" ?>
<sexystars>
<category name="Bollywood">
<sexystar name="Antra mali" />
<sexystar name="Deepika Padukone" />
<sexystar name="Mandira Bedi" />
</category>
<category name="Hollywood">
<sexystar name="Jennifer Lopez" />
<sexystar name="Jessica Alba" />
</category>
</sexystars>
示例xslt文件如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?xml version="1.0" encoding="UTF-8" ?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">;
<xsl:output omit-xml-declaration="yes"/>
<xsl:template match="sexystars">
<div>
<xsl:apply-templates select="category" />
</div>
</xsl:template>
<xsl:template match="category">
<h2>
<xsl:value-of select="@name"/>
</h2>
<ul>
<xsl:apply-templates select="sexystar" />
</ul>
</xsl:template>
<xsl:template match="sexystar">
<li>
<xsl:value-of select="@name"/>
</li>
</xsl:template>
</xsl:stylesheet>
调用的c#代码:

1
2
3
XmlDocument xDoc=new XmlDocument();
xDoc.Load(@"C:\sample.xml");
string returnhtml = ConvertXML(xDoc, @"C:\sample.xslt", new XsltArgumentList());
将输入如下html:

1
2
3
4
5
6
7
8
9
10
11
12
13
<div>
<h2>Bollywood</h2>
<ul>
<li>Antra mali</li>
<li>Deepika Padukone</li>
<li>Mandira Bedi</li>
</ul>
<h2>Hollywood</h2>
<ul>
<li>Jennifer Lopez</li>
<li>Jessica Alba</li>
</ul>
</div>


有疑问加站长微信联系(非本文作者)

280

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK