text.xml<?xml version="1.0" standalone="yes"?>
<NewDataSet>
<Table>
<姓名>陈锐 </姓名>
<Sex>男 </Sex>
<政治面貌>共青团员 </政治面貌>
<省份>上海 </省份>
<毕业中学>上海市七宝中学 </毕业中学>
<出生年月>1991-3-20 </出生年月>
<寝室号>3-11-313 </寝室号>
<备注>0 </备注>
</Table>
<Table>
<姓名>陈娅 </姓名>
<Sex>女 </Sex>
<政治面貌>共青团员 </政治面貌>
<省份>湖南 </省份>
<毕业中学>华容二中 </毕业中学>
<出生年月>1990-8-18 </出生年月>
<寝室号>2-3-216 </寝室号>
<备注>0 </备注>
</Table>
tess.xml<?xml version="1.0" standalone="yes"?>
<NewDataSet>
<Table>
<姓名>陈锐 </姓名>
<Sex>男 </Sex>
<政治面貌>共青团员 </政治面貌>
<省份>上海 </省份>
<毕业中学>上海市七宝中学 </毕业中学>
</Table>
<Table>
<姓名>陈娅 </姓名>
<Sex>女 </Sex>
<政治面貌>共青团员 </政治面貌>
<省份>湖南 </省份>
<毕业中学>华容二中 </毕业中学>
</Table>
就是用C#写,用XSLT将tess.xml的格式转换test.xml的格式,没有的值为空就是。
<NewDataSet>
<Table>
<姓名>陈锐 </姓名>
<Sex>男 </Sex>
<政治面貌>共青团员 </政治面貌>
<省份>上海 </省份>
<毕业中学>上海市七宝中学 </毕业中学>
<出生年月>1991-3-20 </出生年月>
<寝室号>3-11-313 </寝室号>
<备注>0 </备注>
</Table>
<Table>
<姓名>陈娅 </姓名>
<Sex>女 </Sex>
<政治面貌>共青团员 </政治面貌>
<省份>湖南 </省份>
<毕业中学>华容二中 </毕业中学>
<出生年月>1990-8-18 </出生年月>
<寝室号>2-3-216 </寝室号>
<备注>0 </备注>
</Table>
tess.xml<?xml version="1.0" standalone="yes"?>
<NewDataSet>
<Table>
<姓名>陈锐 </姓名>
<Sex>男 </Sex>
<政治面貌>共青团员 </政治面貌>
<省份>上海 </省份>
<毕业中学>上海市七宝中学 </毕业中学>
</Table>
<Table>
<姓名>陈娅 </姓名>
<Sex>女 </Sex>
<政治面貌>共青团员 </政治面貌>
<省份>湖南 </省份>
<毕业中学>华容二中 </毕业中学>
</Table>
就是用C#写,用XSLT将tess.xml的格式转换test.xml的格式,没有的值为空就是。
<?xml version="1.0" encoding="gb2312"?>
<NewDataSet>
<Table>
<姓名>陈锐 </姓名>
<Sex>男 </Sex>
<政治面貌>共青团员 </政治面貌>
<省份>上海 </省份>
<毕业中学>上海市七宝中学 </毕业中学>
<出生年月>1991-3-20 </出生年月>
<寝室号>3-11-313 </寝室号>
<备注>0 </备注>
</Table>
<Table>
<姓名>陈娅 </姓名>
<Sex>女 </Sex>
<政治面貌>共青团员 </政治面貌>
<省份>湖南 </省份>
<毕业中学>华容二中 </毕业中学>
<出生年月>1990-8-18 </出生年月>
<寝室号>2-3-216 </寝室号>
<备注>0 </备注>
</Table>
</NewDataSet>
xsl<?xml version="1.0" encoding="gb2312"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:msxsl= "urn:schemas-microsoft-com:xslt ">
<xsl:template match="/">
<NewDataSet>
<xsl:for-each select="/NewDataSet/Table">
<Table>
<姓名>
<xsl:value-of select="姓名"/>
</姓名>
<Sex>
<xsl:value-of select="Sex"/>
</Sex>
<政治面貌>
<xsl:value-of select="政治面貌"/>
</政治面貌>
<省份>
<xsl:value-of select="省份"/>
</省份>
<毕业中学>
<xsl:value-of select="毕业中学"/>
</毕业中学>
</Table>
</xsl:for-each>
</NewDataSet>
</xsl:template>
</xsl:stylesheet>cs
string strxmlPath = @"c:\b.xml";
XmlDocument oXMLSource = new XmlDocument();
oXMLSource.Load(strxmlPath); string m_strXSLPath = @"c:\a.xsl";
XslCompiledTransform oXslTransform = new XslCompiledTransform();
oXslTransform.Load(m_strXSLPath); MemoryStream oReaderMemory = new MemoryStream(Encoding.GetEncoding("gb2312").GetBytes(oXMLSource.InnerXml));
XmlReader oReader = XmlReader.Create(oReaderMemory);
oReader.MoveToContent(); XmlWriterSettings oWriterSettings = new XmlWriterSettings();
oWriterSettings.OmitXmlDeclaration = false;
oWriterSettings.Indent = true;
oWriterSettings.Encoding = Encoding.GetEncoding("gb2312");
MemoryStream oWriteMemory = new MemoryStream();
XmlWriter oWriter = XmlWriter.Create(oWriteMemory, oWriterSettings);
oXslTransform.Transform(oReader, oWriter); string strResultXML = Encoding.GetEncoding("gb2312").GetString(oWriteMemory.ToArray()); oReaderMemory.Close();
oReader.Close();
oWriter.Close();
oWriteMemory.Close();
输出 strResultXML
<?xml version="1.0" encoding="gb2312"?>
<NewDataSet xmlns:msxsl="urn:schemas-microsoft-com:xslt ">
<Table>
<姓名>陈锐 </姓名>
<Sex>男 </Sex>
<政治面貌>共青团员 </政治面貌>
<省份>上海 </省份>
<毕业中学>上海市七宝中学 </毕业中学>
</Table>
<Table>
<姓名>陈娅 </姓名>
<Sex>女 </Sex>
<政治面貌>共青团员 </政治面貌>
<省份>湖南 </省份>
<毕业中学>华容二中 </毕业中学>
</Table>
</NewDataSet>