0

私は最近xmlを使っています。そして、ちょっとした現象に気づきました(世界の他の地域にとってはそれほど大きな問題ではないかもしれませんが、私にとってはそうでした)。たぶん、それは私が初心者であるということです。しかし、ほとんどのハードコーディングされた番号やマジックナンバーを構成ファイルに分割するべきではありませんか?例えば、

    string url = "http://www.domain.com/aDocument.xml";        
    XmlDocument feed = new XmlDocument();
    feed.Load(url);

    XmlNode errorsNode = feed.SelectSingleNode("Errors");

    if (errorsNode != null)
    {
        XmlNode error = errorsNode.FirstChild;
        lblError.Text = "Error: " + error.SelectSingleNode("Code").InnerText;
    }

xmlドキュメントは次のとおりです。

  <Errors>
    <Error>
        <Code>AWS.MissingParameters</Code>
        <Message>You are missing an parameter</Message>
    </Error>
 </Errors>

「コード」または「メッセージ」をハードコーディングせずに、これをどのように解析しますか?

4

2 に答える 2

2

数字の場合と同じです。取得する要素の名前を持つ文字列型の定数を宣言し、それをXMLツールのメソッドに渡します。

ただし、これらすべてを処理するXMLドキュメント(またはスキーマがある場合はスキーマ)からオブジェクト表現を作成することを検討することをお勧めします。このように、XMLドキュメントをコードにロードするだけで、オブジェクト表現への解析が行われます。

次に、XMLが変更された場合は、生成されたコードを変更して、新しい要素名を使用します。

これにはXSD.EXEツールを使用します。

于 2009-02-19T03:58:05.403 に答える
2

それが最良のオプションかどうかはわかりませんが、通常、この種の処理が文字列定数のセットを使用して処理されるのを見てきました。少なくとも、同じXMLスキーマを複数の場所で処理している場合、マジックストリングはすべて1つの場所で定義されます。スキーマが頻繁に変更されない限り、これを構成ファイルに任せるのはやり過ぎだと思います。

于 2009-02-19T03:58:27.540 に答える