如何使用newtonsoft解析集合中的属性

时间:2017-01-28 00:43:59

标签: c# json xml vb.net

请参阅下面的XML。 Comparable_Sale是重复项。我正在使用新的NewtonSoft的Json解析器,我需要能够获得_Description属性的值,其中_type属性等于特定字符串值,例如元素中的“GrossBuildingArea”。

我使用下面的代码用newtsonsoft解析属性值,但我无法弄清楚如何获取属性。

<COMPARABLE_SALE PropertySequenceIdentifier="3" ProjectName="Villages of Devinshire" ProjectPhaseIdentifier="1" PropertySalesAmount="132500" SalesPricePerGrossLivingAreaAmount="109.32" DataSourceDescription="FMLS, 5559496;DOM 80" DataSourceVerificationDescription="Tax Recs/2ndGen/Deeds" SalesPriceTotalAdjustmentPositiveIndicator="N" SalePriceTotalAdjustmentAmount="-1500" SalesPriceTotalAdjustmentGrossPercent="1.1" SalePriceTotalAdjustmentNetPercent="1.1" AdjustedSalesPriceAmount="131000">
<SALE_PRICE_ADJUSTMENT _Type="GrossBuildingArea"_Description="1,254"/>
<SALE_PRICE_ADJUSTMENT _Type="BasementArea" _Description="1,254 Sq.Ft."/>
<SALE_PRICE_ADJUSTMENT _Type="BasementFinish" _Description="1rr2ba4o"/>
</COMPARABLE_SALE>

此代码将我带到属性,但我看不到如何获取属性。

for each item in   jobject.Children(Of JObject)()
    For Each [property]   In item.Children(Of JProperty)()
        If [property].Value.Type = JTokenType.[String] Then
            Dim newItem = New xmlRootValues()
            newItem.Name = [property].Name
            newItem.Value = [property].Value.ToString()
            lstValues.Add(newItem)
        End If
    Next
 next

非常感谢(C#或VB.net)中的任何帮助。

谢谢, 混沌

2 个答案:

答案 0 :(得分:0)

要使用xml,请使用xml api,如XDocument。这里有一个C#示例:

<input>

答案 1 :(得分:0)

在linq to xml中,您还可以使用Descendants和foreach来获取相同元素的所有值。

var obj = from item in xDoc.Descendants("SALE_PRICE_ADJUSTMENT")
                  select new
                      {
                          _Descr = item.Attribute("_Description").Value,
                          _Type = item.Attribute("_Type").Value
                      };