[英]c# XML and LINQ
我有一個XML文檔,看起來像這樣:
<people>
<person>
<name>mike</name>
<address>1 main st</address>
<jobTitle>SE</jobTitme>
<children>
<name>mary</name>
<age>5</age>
</childres>
</person>
<person>
<name>john</name>
<address>2 main st</address>
<jobTitle>SE</jobTitme>
</person>
</people>`
所以並非所有人阻擋和兒童阻擋。 很簡單。 當我通過C#向XML添加一個新人時,我正在編寫一個帶有person對象的函數,該person對象有一個子對象的集合(可能是0或更多)。 我在該函數中編寫linq時遇到問題。 我可以輕松添加一個人物,但有條件地添加一個或多個孩子是很難的。 這是我到目前為止:
doc.Element("People").Add(
new XElement("Person",
new XElement("Name", person.name),
new XElement("Address", person.address),
new XElement("jobTitle", person.jobTitle)))
我如何有條件地添加孩子?
public class person { public List<Child> childList; public string name; public string address; public string jobTitle }
public class child { public string name; public int age; }
我如何有條件地添加孩子?
三種選擇:
XElement
調用中使用null
參數; 那將被忽略 Add
。 如果沒有看到Person
類型的代碼,很難給出更具體的建議。
(順便說一句,看起來你的元素實際上應該是child
而不是孩子,假設你每個孩子有一個元素...)
編輯:現在我們可以看到你的代碼,看起來你只是想要:
doc.Element("People").Add(
new XElement("Person",
new XElement("Name", person.name),
new XElement("jobTitle", job.title),
person.children.Select(c => new XElement("children",
new XElement("Name", c.name),
new XElement("Age", c.age)))));
請注意,當涉及元素名稱時,您目前與大寫字母非常不一致,並且公開這樣的公共字段也是一個壞主意。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.