我正在努力最好地理解如何将以下XML实现为XDocument,但我对XDocument的内容很新,而且我遇到了一个如何绕过多属性的概念性问题。具有嵌套在另一个元素内的值的元素。
以下是XML的示例 - 任何帮助将不胜感激
<LVNPImport xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<InterfaceIdentifier>835</InterfaceIdentifier>
<FolderPaths>
<Folder fromDate="" toDate="" contactName="APerson" email="AnEmail">Remittance Advice</Folder>
<Folder>%FACILITY%</Folder>
<Folder>%PAYORID%</Folder>
<Folder>%REMITDATE YYYY%</Folder>
<Folder>%REMITDATE MMMM YYYY%</Folder>
</FolderPaths>
<DocumentType>RA</DocumentType>
<DocumentDescription>%REMITDATE MM-DD-YY%</DocumentDescription>
<TotalFiles>1</TotalFiles>
</LVNPImport>
修改的
上面是一个模板 - 我没有读,我正在写出来所以我需要创建上面的XDoc。
我刚刚进入XDocument的东西,我所拥有的就是你可以在Stack上找到的大多数例子。
答案 0 :(得分:3)
您可以在new XElement
重载内传递多个属性,作为对象内容:
XElement folderPath = new XElement("FolderPaths");
folderPath.Add(
new XElement(
"Folder",
new XAttribute("fromDate", String.Empty),
new XAttribute("toDate", String.Empty),
new XAttribute("contactName", "APerson"),
new XAttribute("email", "AnEmail"),
"Remittance Advice"
)
);
答案 1 :(得分:1)
对于任何看过这个的人,在我从@ReinderWit获得这个答案的帮助以及另一个问题的答案之间(参见问题中的其他评论)我能够弄清楚如何构建XDocument。
代码如下:
_folderviewContents =
new XDocument(
new XElement("InterfaceIdentifier", "835"),
//Start of FolderPaths
new XElement("FolderPaths",
new XElement("Folder",
new XAttribute("fromDate", String.Empty),
//attributes for Folder w/ lots of attributes
new XAttribute("toDate", String.Empty),
new XAttribute("contactName", "APerson"),
new XAttribute("email", "AnEmail"),
//value for that long Folder w/ lots of attributes
"Remittance Advice"),
//Facility
new XElement("Folder", String.Empty),
//PayorID
new XElement("Folder", String.Empty),
//RemitDate Year
new XElement("Folder", String.Empty),
//RemitDate Month/Year
new XElement("Folder", String.Empty)),
new XElement("DocumentType", "RA"),
new XElement("DocumentDescription",String.Empty),
new XElement("TotalFiles", "1"));
我仍然需要添加XML版本和命名空间,但这些看起来很简单。希望这有助于未来构建有点奇怪且不那么直截了当的XDoc。