Установка вложенных узлов XML из C # с помощью XElement - PullRequest
1 голос
/ 14 февраля 2010

Я изменяю некоторый унаследованный код и мне нужно проанализировать / записать в XML с помощью C #. Я пытаюсь установить значение вложенного элемента, но не получаю никакой радости. Это должно быть очень просто, но я не уверен, что я делаю неправильно.

Вот шаблон XML:

<my:productReport>
    <my:productId>1</my:productId>
    <my:company>MyCompany</my:company>
    <my:productPerson>
        <my:productPersonId xsi:nil="true"></my:productPersonId>
        <my:productPersonName></my:productPersonName>
    </my:productedBy>
</my:productReport>

Я не могу поставить компанию без проблем:

 XElement companyEle = doc.Root.Element(myNameSpace + "company");
   companyEle.Value = value;

Но как я могу добавить идентификатор человека и имя продукта? Может быть добавлено несколько элементов personID / personName.

1 Ответ

2 голосов
/ 14 февраля 2010

Вы ищете что-то подобное? Вы упомянули необходимость установки и добавления, извините, если я неправильно понял. Кроме того, если вы не заметили, у предоставленного вами шаблона неправильный закрывающий тег для productPerson.

//Get collection of productPerson elements
IEnumerable<XElement> prodPersons = productReport.Elements("productPerson");
foreach(XElement pp in prodPersons)
{
  //Set values
  pp.Element("productPersonId").Value = "1";
  pp.Element("productPersonName").Value = "xxx";
}

//Add a productPerson element
XElement prodPersonEle =
     new XElement("productPerson",
          new XElement("productPersonId","3"),
          new XElement("productPersonName", "Somename")
     );


//Add prodPersonEle to whatever parent it belongs.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...