【问题标题】:XML with elements of the same name具有相同名称元素的 XML
【发布时间】:2014-08-05 14:03:07
【问题描述】:

如何编辑每个地址行中的数据,因为它们都具有相同的名称?

    <StructuredAddress>
      <AddressLine></AddressLine>
      <AddressLine></AddressLine>
      <AddressLine></AddressLine>
    </StructuredAddress>

到目前为止,我的代码不起作用,就是这个。如何单独隔离每个 AddressLine 并插入适当的数据?

     XElement StructuredAddress = PatientAddress.Descendants("StructuredAddress").First();
     StructuredAddress.Element("AddresLine").Value = cc.address1;
     StructuredAddress.Element("AddresLine").Value = cc.address2;
     StructuredAddress.Element("AddresLine").Value = cc.address3;

【问题讨论】:

  • 我不确定我是否完全理解这个问题,但只是在“AddressLine”前面加上一个标识符;像“AddressLine1”这样的东西?
  • 无法更改 xml,我必须使用该模板

标签: c# .net xml


【解决方案1】:

您可能希望使用每个&lt;AddressLine&gt; 的索引来访问它:

XElement StructuredAddress = PatientAddress.Descendants("StructuredAddress").First();
var address = StructuredAddress.Elements("AddresLine").ToList();
address[0].Value = cc.address1;
address[1].Value = cc.address2;
address[2].Value = cc.address3;

【讨论】:

  • 在address[0] 之后需要一个.Value,但效果很好,谢谢
【解决方案2】:

您可以迭代它们,它们将按顺序显示它们:

foreach (var addressLine in StructuredAddress.Elements("AddressLine"))
{
    addressLine.Value = ...
}

或按索引;

var lines = StructuredAddress.Elements("AddressLine").ToList();
lines[0].Value = "...";

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-02
    相关资源
    最近更新 更多