如何以有效的方式从字符串(xml)中获取所需的子字符串?

我有C#申请。下面是我的字符串


<subscription_add_ons type="array">

    <subscription_add_on>

        <add_on_type>fixed</add_on_type>

        <add_on_code>bike-o-vision</add_on_code>

        <unit_amount_in_cents type="integer">2000</unit_amount_in_cents>

        <quantity type="integer">1</quantity>

        <revenue_schedule_type>evenly</revenue_schedule_type>

    </subscription_add_on>

    <subscription_add_on>

        <add_on_type>fixed</add_on_type>

        <add_on_code>boxx</add_on_code>

        <unit_amount_in_cents type="integer">1499</unit_amount_in_cents>

        <quantity type="integer">1</quantity>

        <revenue_schedule_type>evenly</revenue_schedule_type>

    </subscription_add_on>

    <subscription_add_on>

        <add_on_type>fixed</add_on_type>

        <add_on_code>fitfusion-strala</add_on_code>

        <unit_amount_in_cents type="integer">500</unit_amount_in_cents>

        <quantity type="integer">1</quantity>

        <revenue_schedule_type>evenly</revenue_schedule_type>

    </subscription_add_on>

</subscription_add_ons>

我需要的是上面 xml 字符串的子字符串,如下所示。


<subscription_add_ons type="array">

    <subscription_add_on>

        <add_on_code>bike-o-vision</add_on_code>

        <quantity type="integer">1</quantity>

    </subscription_add_on>

    <subscription_add_on>

        <add_on_code>boxx</add_on_code>

        <quantity type="integer">1</quantity>

    </subscription_add_on>

    <subscription_add_on>

        <add_on_code>fitfusion-strala</add_on_code>

        <quantity type="integer">1</quantity>

    </subscription_add_on>

</subscription_add_ons>



上面的代码片段总是获取第一个子字符串,对我来说它看起来非常低效。


如何以有效的方式从字符串(xml)中获取所需的子字符串?


谢谢!


慕少森
浏览 92回答 1
1回答

万千封印

只需解析 xml 并删除不需要的元素:XDocument doc = XDocument.Load("fileName.xml");//or//XDocument doc = XDocument.Parse(textString);foreach(var removeNode in new string[]{"add_on_type", "unit_amount_in_cents","revenue_schedule_type"}){&nbsp; &nbsp; doc.Root.Descendants(removeNode).Remove();}string result = doc.ToString();编辑:要添加更多元素,请这样做:doc.Root.Add(&nbsp; &nbsp; new XElement(&nbsp; &nbsp; &nbsp; &nbsp; "subscription_add_on",&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; new XElement("add_on_code","add_on_code_value"),&nbsp; &nbsp; &nbsp; &nbsp; new XElement("quantity",&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; new XAttribute("type","integer"),&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 1&nbsp; &nbsp; &nbsp; &nbsp; )&nbsp; &nbsp; ));
打开App,查看更多内容
随时随地看视频慕课网APP