Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# XDocument实现_C#_Linq_Linq To Xml - Fatal编程技术网

C# XDocument实现

C# XDocument实现,c#,linq,linq-to-xml,C#,Linq,Linq To Xml,我正试图最好地理解如何将以下XML实现为XDocument,但我对XDocument的内容还比较陌生,我遇到了一个概念性问题,即如何绕过一个元素中的多属性,并将值嵌套在另一个元素中 下面是XML的一个示例——如有任何帮助,将不胜感激 <LVNPImport xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <Interfa

我正试图最好地理解如何将以下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>

835
汇款通知
%贷款%
%派息%
%汇款日期YYYY%
%汇款日期MMMM YYYY%
类风湿关节炎
%汇款日期年月日%
1.
编辑

上面是一个模板——我不是在读,而是在写,所以我需要将上面的内容创建为XDoc


我刚刚开始学习XDocument的内容,我所拥有的内容与堆栈上的大多数示例几乎相同。

您可以在
新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"
    )
);

您可以在
新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"
    )
);

对于任何看到这一点的人来说,在@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。

对于任何关注这一点的人,我从@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。

您的确切问题是什么?您可以将XML加载到XDocument对象中,然后可以查询结构和XElement属性…向我们展示您的尝试,这样我们可以帮助您解决实际问题,而不仅仅是给出解决方案。@ReinderWit上述内容是一个模板--我正试图找出如何将上述内容创建为XDocument。好的,你有一些你已经试过的代码吗?实施应该不会太难……我相信我们可以提供帮助,但我们需要更多地了解您的问题所在。您是否试图从
XDocument
开始获取这些属性的值?你能把代码和XML文件一起发布吗?你到底有什么问题?您可以将XML加载到XDocument对象中,然后可以查询结构和XElement属性…向我们展示您的尝试,这样我们可以帮助您解决实际问题,而不仅仅是给出解决方案。@ReinderWit上述内容是一个模板--我正试图找出如何将上述内容创建为XDocument。好的,你有一些你已经试过的代码吗?实施应该不会太难……我相信我们可以提供帮助,但我们需要更多地了解您的问题所在。您是否试图从
XDocument
开始获取这些属性的值?你能不能把代码和XML一起发布呢?这非常有帮助,我已经把你的帖子投了赞成票——谢谢!这是非常有帮助的,我已经投票支持了你的帖子——谢谢!