c# - 如何获得具有匹配条件的前一个 XElement 同级
问题描述
我有一些 XML 格式的数据,其中包含项目列表:
<message>
<items id="_DD" value="28OCT"/>
<items id="_PC" value="ABV"/>
<items id="_CT" value="15H03"/>
<items id="_CD" value="31OCT"/>
<items id="_AN" value="5556695"/>
<items id="_CC" value="PSD"/>
<items id="_MK" value="OJJ"/>
<items id="_DT" value="LKM"/>
<items id="_IT" value="B239"/>
<items id="_ML" value="4569"/>
<items id="_TA" value=""/>
<items id="_P1" value=""/>
<items id="_MK" value="APK"/>
<items id="_DT" value="MMK"/>
<items id="_IT" value="B219"/>
<items id="_ML" value="0069"/>
<items id="_RC" value="0"/>
...
</message>
大多数项目在它们之间是独立的,但在某些情况下它们是相关的。例如,这些id="_MK"
项目标记了一个新类别。
所以我需要制作一个元素列表(id="_ML"
例如,带有 ),并且还能够获得它们所属的类别(这是带有 的前一个项目的值id="_MK"
)。
我如何获得每个项目的价值,他们以前的id="_MK"
兄弟姐妹,所以我可以分配类别(该id="_MK"
项目的价值)给他们?
对于"_ML"
列表,结果应包含:
[
{
value: "4569",
category: "OJJ"
},
{
value: "0069",
category: "APK"
}
]
我知道我可以用 a 来做到这一点foreach
,但是项目列表非常大,我担心性能。我无法使用 LinQ 找到任何解决方案,这是我心中的最佳选择。
此外,格式和结构来自第三方来源,因此我无法更改。
解决方案
推荐阅读
- doxygen - Doxygen: \include test.dox in mainpage.dox 添加为文本
- reactjs - Next js 中的文件查看器
- c# - 如何将空字符串发送到 int params 错误
- fpga - 将 Xilinx Edk 11.1Project 移植到 14.7
- lua - nodemcu gpio中断无法正常工作
- google-apps-script - 获取另一个工作表中单元格的最后更新时间
- python - Spark覆盖广播变量
- mongodb - Mongo 条件 $push
- wordpress - 如何从 Wordfence 禁用身份验证电子邮件发送?
- angular - 使用 Angular 和 Electron 构建的桌面应用程序在安装后显示白屏