(Webサービスを介して)値をデータベースに保存するために使用するxmlテンプレートがあります。linq を使用して xml 文字列を更新する方法の例を見てきました。例えば...
<Contacts>
<Contact>
<FirstName>Petar</FirstName>
<LastName>Petrovic</LastName>
<Email>p.petar@someemail.com</Email>
<Address>Pere Perica 10</Address>
<ZipCode>1000</ZipCode>
<City>Belgrade</City>
<State>Serbia</State>
</Contact>
</Contacts>
これが更新したい xml ドキュメントである場合は、単に何かを行うだけです。
XElement xmlDoc = new XElement("Contacts",
from c in db.Contacts
orderby c.ContactID
select new XElement("Contact",
new XElement("ContactID", c.ContactID),
new XElement("FirstName", c.FirstName),
new XElement("LastName", c.LastName)));
xmlDoc.Save(Server.MapPath(@"~/export.xml"));
これはかなりクールです。しかし、属性を除いて本質的に同じノードを更新する必要があります。例えば...
<?xml version="1.0" encoding="utf-8"?>
<dataTemplateSpecification id="id1" name="name1">
<description>
<html>text</html>
</description>
<templates>
<template>
<elements>
<element id="element0" name="PatientId" display="Patient ID" dataType="String" visable="true" readOnly="false">
</element>
<element id="element1" name="EMPIID" display="EMPI ID" dataType="String" visable="true" readOnly="true">
</element>
</elements>
<dataTypeSpecifications>
<dataTypeSpecification id="" baseType="KeyValuePair">
<dictionaryDefinition>
<item key="-1" value="-SELECT-" />
<item key="1" value="YES" />
<item key="0" value="NO" />
</dictionaryDefinition>
</dataTypeSpecification>
</dataTypeSpecifications>
ほら、属性、つまり名前属性と値属性によって区別される同様のノードがあります... linqを使用してそれを更新するにはどうすればよいですか? 名前で要素を選択し、その値を設定するだけのxPathタイプのものを使用して、新しいXelementを選択することを考えていますか? しかし、私はそれを行う方法について少し混乱しています。何か案は?