【发布时间】:2016-02-28 06:01:12
【问题描述】:
我有一个字符串 xml
<message code="L1" />
<message code="D1" />
<message code="A1">NAME: JON ID: 99017 CODE: 111222333 TYPE: ST</message>
<message code="A2">NTC: RISK: START: 09/01/2015 STATUS: ACTIVE</message>
<message code="CD">STATE: MS LAST CANCEL REASON:</message>
<message code="A4">A, TIM (PRIMARY) OS 09/01/2015 09/01/2016</message>
<message code="D1" />
<message code="A1">NAME: Tim ID: 99017 CODE: 111222333 TYPE: ST</message>
<message code="A2">NTC: RISK: START: 09/01/2015 STATUS: EXPIRED</message>
<message code="CD">STATE: MS LAST CANCEL REASON:</message>
<message code="A4">A, TIM (PRIMARY) OS 09/01/2014 09/01/2015</message>
<message code="D1" />
我想把这个字符串 xml 读入一个列表。如果你看到这个 xml,它包含 2 个部分
<message code="A1">NAME: JON ID: 99017 CODE: 111222333 TYPE: ST</message>
<message code="A2">NTC: RISK: START: 09/01/2015 STATUS: ACTIVE</message>
<message code="CD">STATE: MS LAST CANCEL REASON:</message>
<message code="A4">A, TIM (PRIMARY) OS 09/01/2015 09/01/2016</message>
<message code="D1" />
和
<message code="A1">NAME: Tim ID: 99017 CODE: 111222333 TYPE: ST</message>
<message code="A2">NTC: RISK: START: 09/01/2015 STATUS: EXPIRED</message>
<message code="CD">STATE: MS LAST CANCEL REASON:</message>
<message code="A4">A, TIM (PRIMARY) OS 09/01/2014 09/01/2015</message>
<message code="D1" />
我想将元素放入列表中
var subjects= new List<subject>();
subjects.Add(new subject()
{
Name = JON,
State = MS
})
我在 xmlnode 上通过 foreach 尝试,然后使用子字符串来获取值。
【问题讨论】:
-
请以minimal reproducible example 的形式确切地显示您尝试了什么以及出了什么问题。
-
我尝试在 xmlnode 上使用 foreach,然后使用子字符串来获取值。 嗯,这是一个好方法,对你有好处,你这样做有什么问题吗?
-
这不是一个有效的 Xml,因为您似乎有多个根元素。您需要将每一行视为单独的 Xml 文档,或者使用 XmlReader 并将 XmlReaderSettings.ConformanceLevel 设置为 ConformanceLevel.Fragment;然后进行相应的后期处理。
-
我发布了 xml 字符串的一部分,因此它不是有效的 xml。我正在使用子字符串来获取值。所以对于那个硬编码的开始和结束索引将在那里。有什么办法可以避免吗?
-
@user1893874 为什么会有硬编码的开始和结束索引?