根据模式c#将文本拆分为变量

时间:2018-01-14 16:13:47

标签: c# split

我有这种形式的文字字符串

<remittance><contain><blrn>032398106/17/59321</blrn><brmt>17GR0900FG344</brmt><bamnt>0</bamnt><bmsv>120,00</bmsv></contain></remittance>

有没有办法让每个节点都变成变量,所以我可以将它们单独用作表格中的变量?

我想要这样的东西

blrn = "032398106/17/59321"
brmt = "17GR0900FG344"
bamnt = "0"
bmsv = "120,00"

尝试了这样的代码

    string data = "&lt;remittance&gt;&lt;contain&gt;&lt;blrn&gt;032398106/17/59321&lt;/blrn&gt;&lt;brmt&gt;lrn /afm check error&lt;/brmt&gt;&lt;bamnt&gt;0&lt;/bamnt&gt;&lt;bmsv&gt;0&lt;/bmsv&gt;&lt;/contain&gt;&lt;/remittance&gt;";
    var decoded = System.Web.HttpUtility.HtmlDecode(data);

    string[] export;
    export = decoded.Replace("<blrn>", "|").Split('|');

但它不会将核心值返回到导出

1 个答案:

答案 0 :(得分:3)

本文基本上是一个Xml文档。您可以通过这种方式获取内容:

System.Xml.XmlDocument xd = new System.Xml.XmlDocument();
xd.LoadXml(yourxmlstring);
System.Xml.XmlElement root = xd.DocumentElement;
System.Xml.XmlNodeList nl = root.SelectNodes("//remittance/contain");
Dictionary<string, string> dictionary = new Dictionary<string, string>();
foreach (System.Xml.XmlNode xnode in nl.Item(0).ChildNodes)
{
    string name = xnode.Name;
    string value = xnode.InnerText;
    dictionary.Add(name, value);
    }