簡體   English   中英

C# 從 XML 子節點獲取值時出現問題

[英]Having problem in C# getting value from an XML subnode

我試圖在循環另一個節點的同時循環一個子節點。 我正在使用的代碼是(很多處理代碼與刪除的問題無關)。

private void InsertLineItems(IEnumerable<XElement> BillingCode, int visitId)
{
    if (BillingCode != null)
    {
        using (var visitRepo = db.GetVisitRepository())
        {
            foreach (var item in BillingCode)
            {
                if (item.Element("Code").Attribute("value").Value.Length < 9)
                {
                    foreach (var icditem in item.Descendants("ICD10List"))
                    {
                        var icd10code = item.Element("ICD10List").Element("ICD10Code").Attribute("value");
                    }
                }
            }
        }
    }
)

解析以下 XML

<BillingCodes>
    <BillingCodeDTO>
        <Code value="73100"/>
        <Description value="X-ray left lower leg"/>
        <Quantity value="1"/>
        <ICD10List>
            <ICD10Code value="Y34.9"/>
            <ICD10Code value="Y34.99"/>
            <ICD10Code value="M79.9"/>
        </ICD10List>
    </BillingCodeDTO>
    <BillingCodeDTO>
        <Code value="74120"/>
        <Description value="X-ray left foot"/>
        <Quantity value="1"/>
        <ICD10List>
            <ICD10Code value="Z03.9"/>
        </ICD10List>
    </BillingCodeDTO>
</BillingCodes>

我遇到的問題是,在循環 ICD10List 時,它只返回第一個值。 讓它循環遍歷所有值我哪里錯了? 我確實嘗試使用 ICD10Code 作為循環(下面的代碼,只是更改了 foreach),它循環了正確的次數,但每次都返回相同的值。

  foreach (var icditem in item.Descendants("ICD10List").Descendants("ICD10Code"))
    { var icd10code = item.Element("ICD10List").Element("ICD10Code").Attribute("value");}

a)您只有一個變量,您需要重新分配。 最后你想使用一個列表或其他東西。

b)您應該使用icditem變量而不是訪問固定元素。 良好的 IDE 將指示有關未使用變量的警告。

foreach (var icditem in item.Descendants("ICD10List").Descendants("ICD10Code"))
{ 
    var icd10code = icditem .Attribute("value");
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM