【问题标题】:XDocument ImplementationXDocument 实现
【发布时间】:2014-03-25 15:00:37
【问题描述】:

我试图最好地理解如何将以下 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 上的大多数示例中可以找到的内容。

【问题讨论】:

  • 您的具体问题是什么?您可以将 XML 加载到 XDocument 对象中,然后可以查询结构和 XElement 属性...
  • 向我们展示您的尝试,以便我们帮助您解决实际问题,而不仅仅是给出解决方案。
  • @ReinderWit 以上是一个模板——我正在尝试弄清楚如何将以上内容创建为 XDocument。
  • 好的,你有一些你已经尝试过的代码吗?实现应该不难......
  • 我相信我们可以提供帮助,但我们需要更多地了解您的问题所在。您是否尝试获取以XDocument 开头的这些属性的值?您可以发布代码以及 XML

标签: c# linq linq-to-xml


【解决方案1】:

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

【讨论】:

  • 这非常有帮助,我已经为你的帖子投了赞成票——谢谢!
【解决方案2】:

对于任何看到这个的人,在我从@ReinderWit 得到这个答案的帮助以及另一个问题的答案(参见问题中的其他 cmets)之间,我能够弄清楚如何建立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 版本和命名空间,但这些看起来很简单。希望这可以帮助其他人在未来构建有点奇怪且不那么简单的 XDocs。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-30
    • 2015-03-26
    • 1970-01-01
    相关资源
    最近更新 更多