我们有一个从模式生成的xml文件,这些文件与我们共享,我们需要从xml文件生成c#代码并设置其属性。我可以创建一个解析器来执行此操作,但是检查是否有任何OOB解决方案。
例如
<Customer>
<fname>tom</fname>
<lname>jerry</lname>
</Customer>
到
Customer cust=new Customer();
fname="tom";
lname="jerry";
答案 0 :(得分:3)
我建议使用Xslt创建所需的代码输出。
这个通用样式表将使用根节点名作为您的类,并为每个子节点分配其内容:
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="text" indent="no" />
<xsl:variable name="newline" select="'
'" />
<xsl:template match="/">
<xsl:apply-templates />
</xsl:template>
<xsl:template match="/node()[1]">
<xsl:variable name="classname" select="local-name()" />
<xsl:value-of select="concat($classname, ' cust=new ', $classname, '();', $newline)"/>
<xsl:for-each select="./*">
<xsl:value-of select="concat(local-name(), '="', text(), '";', $newline)"/>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
应用于
<?xml version="1.0" encoding="utf-8" ?>
<Customer>
<fname>tom</fname>
<lname>jerry</lname>
</Customer>
将产生以下输出
Customer cust=new Customer();
fname="tom";
lname="jerry";