0

私はそれを読んでノードからいくつかの変数に値を抽出しなければならないxmlファイルを持っています.データを抽出する方法がわからないノードに出くわしました.これはノードです:

<QuantityInIssueUnit uom="KO">288.000</QuantityInIssueUnit> 

だから私はKOと288.00を抽出して変数に渡す必要があります、私はこれを試しました:

if (!dr_art_line.Table.Columns.Contains("QuantityInIssueUnit") || 

    dr_art_line["QuantityInIssueUnit"].ToString().Length <= 0)
                                {
                                    QuantityInIssueUnit = 0;
                                }
                                else
                                {
                                QuantityInIssueUnit = Convert.ToDecimal(dr_art_line["QuantityInIssueUnit"]);
                                 {

この:

if (!dr_art_line.Table.Columns.Contains("QuantityInIssueUnit uom") || dr_art_line["QuantityInIssueUnit uom"].ToString().Length <= 0)
                            {
                                QuantityInIssueUnit_uom = 0;
                            }
                            else
                            {
                                QuantityInIssueUnit_uom = Convert.ToDecimal(dr_art_line["QuantityInIssueUnit uom"]);
                            }

しかし、QuantityInIssueUnit が 0 になるたびに、読み取りで何か間違ったことをしていることがわかります。この種のノードを読み取る適切な方法は何ですか?

ありがとう!

4

1 に答える 1

0

DOCUMENT.xml

<ROOT>
    < . . . >
    <QuantityInIssueUnit uom="KO">288.000</QuantityInIssueUnit>
    < . . . >
</ROOT>

これがあなたの設定である場合、私は次のようなものを使用します:

public static float ReadFromXml(string f, string n)
{
    string quantityInIssueUnit;
    XmlReader reader = XmlReader.Create(f);
    reader.ReadToFollowing(n);
    quantityInIssueUnit = reader.ReadInnerXml( );
    reader.Close( );
    return float.Parse(quantityInIssueUnit);
}

したがって、次のように呼び出すことができます。

ReadFromXml(@"C:\\...\DOCUMENT.xml", "QuantityInIssueUnit");
// Returns 288 as a float
于 2012-06-22T17:26:11.267 に答える