xml - XML 到 xQuery,用“”替换空节点或缺失节点
问题描述
我有解析 XML 响应并将其输出到 csv 文件的 xQuery 代码。如果不使用,我正在解析的 XML 响应有时会丢失节点。这导致 csv 输出出现问题,因为没有“,”返回以分隔单元格,导致行数不同。下面的代码显示了我目前拥有的内容:
concat("HolidayEndDate,HolidayType,FirstName,AllowanceRemainingDays,HolidayStartDate,EmployeeId,AllowanceDays,LastName,HolidayDurationDays ",
string-join(
for $b in /root/Result
return
concat(escape-html-uri(string-join(($b/HolidayEndDate,
$b/HolidayType,
$b/FirstName,
$b/AllowanceRemainingDays,
$b/HolidayStartDate,
$b/EmployeeId,
$b/AllowanceDays,
$b/LastName,
$b/HolidayDurationDays
)
/normalize-space(),
",")
),
codepoints-to-string(10)), "")
有没有办法检查每个节点,如果它们为空或丢失,只需用“”或“,”替换它。非常感谢,如果解释不清楚,请道歉。
谢谢。
解决方案
尝试
($b/HolidayType/text(),"")[1]
如果序列中有一个空值,那么空值就会消失。
('A', 'B', 'C', (), 'E')
变成('A', 'B', 'C', 'E')
推荐阅读
- python - 在 Python 3.6 中导入 cartopy.io.img_tiles
- c# - MongoDb / C# 过滤并获取所有子文档
- reporting-services - SSRS - 导出到 Excel 应该只执行第二个数据集
- laravel - 图像不适用于更新方法 | Laravel + VueJs
- arrays - 在 Fortran 中将两个两位整数与数组相乘
- html - 在同一个“按钮”或引用上依次调用 2 个方法
- c# - FakeItEasy 异常方法没有实现
- javascript - 如何将 Parcel JS 生成的包导入“旧版”应用程序?
- php - Laravel 用户只有一个计划,通过关系访问该计划
- powershell - Visual Studio Code / powershell 命令历史向上键