问题标签 [xdoc]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - 我可以使用 FolderBrowserDialog 按部分名称加载 XML 文件,然后循环打开另一个文件吗?
我有工作代码来加载 7 个不同的 XML 文件并将相关数据导入使用数据网格视图显示的数据表中。这对每个文件使用一个单独的打开文件对话框,我现在想创建一个自动按钮,它将按部分名称(“ POP TEST ”)加载第一个文件,并使用我使用文件夹选择的目录中的当前代码解析它对话框。然后我需要它使用部分名称(“ FWD SWP ”)循环到下一个文件,并使用该文件类型的指定代码对其进行解析。
到目前为止,这是我尝试过的,但我收到错误 System.ArgumentException:“路径不是合法形式。”
我的最终目标是一次验证这些 xml 文件,不仅是 1 个文件夹,而且一次最多验证 100 个文件夹。
这是我当前与打开文件对话框一起使用的代码......其次是每个文件夹中我的 7 个不同 XML 文件中的每一个的类似代码。我希望使用浏览文件夹结构将打开文件对话框替换为文件加载方法,以选择结果所在的文件夹...
c# - 为什么我在此 XDocument 的第二次迭代中再次获得第一个节点
我阅读了 XMLXDocument
并运行了一些测试,但现在我在第二圈得到了相同的第一个节点foreach
这是我的 CRUD 获取的 C# 代码:
这是xml数据库
程序在第二圈时也崩溃了new BookItem
c# - 使用 xdoc 在特定顶部元素中查找多个子后代元素
我有这种类型的 xml 文件,我正在尝试获取每个组的 Id 和 Host。
目前我能够获取文件中的每个组,但下面的代码与 group.Value 不匹配
如果我只是尝试这个,我会从第一个组而不是每个组中获得相同的 id 和主机。
组:BTeam ID:1234 主机:BTeamHost
组:CTeam ID:1234 主机:BTeamHost
c# - 使用 XDocument 检查文件中是否存在 xml 部分
我有一些读取 xml 文件的代码。但是它在第三个 IF 语句中触发了一个错误:
错误:
那是因为在这个特定的文件中没有[HOST]
节。
我假设在第一个 IF 语句中,如果它没有找到任何[HOST]
部分,它就不会进入语句,因此我不应该得到这个错误。有没有办法先检查一个部分是否存在?
c# - 在 C# 中查询 XML 元素
我有许多复杂的 XML 文件,我想查询和搜索以获得一个值,下面是两个缩短的示例:
1
2
所需的输出是:标签内的文本<freeText>
(我需要的文本) where tag <informationType>
= (47)
尝试了多个 linq to xml 代码,但没有一个对我有用。前任。
代码1
代码2
代码3
代码4
注意:我只从 web 服务获取 xml。我没有将它存储在某处或将其作为 xml 文件。另请注意,这是 xml 的一部分,只有我需要获取信息
c# - XDocument 按属性日期值过滤
我有以下 XML 结构,我需要使用 LINQ 按属性“日期”对其进行过滤,其中“日期”属性的值小于今天。
属性日期的格式为“yyyymmddhhmmss +Zone”。
例如,在给定的 XML 中第一个节点 date="20200318123000 +0000" 表示:
年=2020,
月=03,
天=18,
小时=12,
分钟=30,
秒=00 &
时区 = UTC +0000。
我尝试使用以下代码执行此操作,但它在“IEnumerable 元素”中不返回任何内容,而不是过滤节点。
c# - 遍历 for 循环但只得到一个结果
我正在尝试迭代PcsInItem下的每个元素并获取每个元素的价格并将它们插入 SQL 表中。下面是我的 XML 结构。
当我运行代码时,它只会将第一项插入 SQL。我不明白为什么它也没有迭代其他项目而只获得第一个项目。
这是我的代码:
知道为什么我只在我的 SQL 表中获得第一项吗?应该有 3 个不同的表记录,并且所有这三个记录具有相同的 ItemId 但不同的 Price 和 PcsId。
xml - 为什么批量较大的文件比相同大小的批量较小的文件处理得更快?
如果每个文件的大小约为 30KB,那么处理约 50,000 个 xml 文件的 VB6 程序的运行速度(就每秒处理的文件数量而言)比每个文件大小约为 4KB 的情况下运行速度快 3 倍是否有意义?如果它确实有意义,我怎样才能加快较小文件的处理速度?
该程序读取每个文件,计算文件的 MD5 哈希值并调用 SQL Server 存储过程来查看具有相同哈希值的文件版本是否已存储在数据库中。如果文件的计算哈希值已经存储在数据库中,则不会进一步处理该文件;该程序只是重复下一个文件。
我一直在测试已经处理到数据库中的大约 50,000 个 xml 文件的批次,所以程序只是循环:获取下一个 xml 文件→</kbd>hash it→</kbd>call Sproc→</kbd>repeat.
我希望该程序在类似大小的小文件批次上运行得更快,但速度要慢得多。
该程序在 64 位 Windows 10 工作站上运行。这些文件存储在工作站的 C:\ 驱动器(SSD)上的单个目录中。SQL Server 在 Windows Server 下的 VM 上运行。
编辑:
我想我已经找到了瓶颈,但我不知道如何解决它。相关的代码如下。瓶颈是由xDOC.async = False
语句引起的。如果我删除它,我会立即获得 20 倍的速度提升。 但是删除它会导致文档加载失败错误,因为代码显然无法处理异步文件加载。这可以加速吗?
c# - LINQ/XML:如果属性名称包含某个关键字,则获取属性值
由于我对 LINQ 和 xDocument 不是很熟悉,我很难实现以下内容:我有一个 XML 文件,它看起来像
用伪代码说话我需要类似的东西
输入:xDocument
输出:包含所有值的字符串列表,即本例中的“Id-100”,其中“id-ext”包含在属性名称中的那些属性。因此,我尝试获取名称中包含某些特定字母的属性的值。
我已经搜索过类似的建议,如此处所述: 如何在整个 XML 文件中搜索关键字? 但关键是这里返回了整个 XML 节点,我无法将其分解为属性名称。
我将不胜感激在应用“后代”以获取属性名称中包含某些关键字的那些属性的值之后如何移动一个的任何建议。