2

スキーマから生成された xml ファイルがあり、これらは私たちと共有されています。xml ファイルから c# コードを生成し、そのプロパティを設定する必要があります。これを行うパーサーを作成できますが、OOB ソリューションがあるかどうかを確認していました。

例えば

<Customer>
 <fname>tom</fname>
 <lname>jerry</lname>
</Customer>

 Customer cust=new Customer();
 fname="tom";
 lname="jerry";
4

1 に答える 1

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="'&#xa;'" />

    <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(), '=&quot;', text(), '&quot;;', $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";
于 2012-05-12T09:15:54.200 に答える