【发布时间】:2021-09-19 14:46:24
【问题描述】:
我正在寻找一些指导方针,如何使用XDocument 更新我的复杂 XML。 XML 看起来很复杂,因为它是从DataSet.WriteXml() 生成的
这是我的 XML 首先是由QCSavedData.WriteXml(@strQCViewAllPath); QCSavedData 生成的数据集:
<?xml version="1.0" standalone="yes"?>
<HNNMY_ViewAll>
<dgvViewAll_Vertical>
<Section_x0020_>MS</Section_x0020_>
<LineItem>Morgan Stanley</LineItem>
<Revise_x0020_Date>10-09-2020</Revise_x0020_Date>
<_x0032_010_x0020_FYA>126,966.0000</_x0032_010_x0020_FYA>
<_x0032_011_x0020_FYA>128,810.0000</_x0032_011_x0020_FYA>
<_x0032_012_x0020_FYA>140,948.0000</_x0032_012_x0020_FYA>
<_x0032_013_x0020_FYA>150,090.0000</_x0032_013_x0020_FYA>
<_x0031_Q_x0020_2014A>37,524.0000</_x0031_Q_x0020_2014A>
<_x0032_Q_x0020_2014A>44,181.0000</_x0032_Q_x0020_2014A>
<_x0033_Q_x0020_2014A>45,259.0000</_x0033_Q_x0020_2014A>
<_x0034_Q_x0020_2014A>49,656.0000</_x0034_Q_x0020_2014A>
<_x0032_014_x0020_FYA>176,620.0000</_x0032_014_x0020_FYA>
<_x0031_Q_x0020_2015A>46,791.0000</_x0031_Q_x0020_2015A>
<_x0032_Q_x0020_2015A>53,233.0000</_x0032_Q_x0020_2015A>
<_x0033_Q_x0020_2015A>53,420.0000</_x0033_Q_x0020_2015A>
<_x0034_Q_x0020_2015A>56,477.0000</_x0034_Q_x0020_2015A>
<_x0032_015_x0020_FYA>209,921.0000</_x0032_015_x0020_FYA>
<_x0031_Q_x0020_2016A>50,624.0000</_x0031_Q_x0020_2016A>
<_x0032_Q_x0020_2016A>54,341.0000</_x0032_Q_x0020_2016A>
<_x0033_Q_x0020_2016A>56,802.0000</_x0033_Q_x0020_2016A>
<GroupKey>Consensus Model~Total Revenue Including VAT~RD_001~NBM~~1~MS</GroupKey>
</dgvViewAll_Vertical>
</HNNMY_ViewAll>
-
看到这是
<Section_x0020_>MS</Section_x0020_>如何查询当section是MS,因为Section有x0020? -
看到这个
<_x0032_010_x0020_FYA>126,966.0000</_x0032_010_x0020_FYA>数据表有很多列,如 2010 FYA、2011 FYA .... 1Q 2014A 但是当数据表数据保存在 xml 中时,它会以这种方式显示<_x0032_010_x0020_FYA>126,966.0000</_x0032_010_x0020_FYA>那么我该如何更新这个标签内的值? -
看到这个
<GroupKey>Consensus Model~Total Revenue Including VAT~RD_001~NBM~~1~MS</GroupKey>
我必须这样查询
XDocument 表示当 Section == GroupKey.Split('~')[5] AND Column Name is 2010 FYA 然后更新 内部的值>column 2010 FYA 表示该列的值 <_x0032_010_x0020_FYA>126,966.0000</_x0032_010_x0020_FYA>
请帮助我提供指导我如何更新 XML 的示例代码。
【问题讨论】:
-
它复杂的唯一原因是您的数据集列名有空格并且以数字开头。 xml 标签不允许第一个字符是数字,也不允许标签名称中包含空格。
-
先生,您能否分享一些想法如何使用 xdocument 类更新我的 xml 数据。
-
您需要修复列名或使用“AS”将名称映射到其他内容。您使用什么查询来获取数据?
标签: c# xml linq-to-xml