c# - 当我对我的 XmlElement 使用 SelectSingleNode 方法时,它仍然读取整个文档而不是在我的元素内
问题描述
我有一个读取 Xml 文件的代码,并且我有一个 InvoiceLine 列表,其中包含 Invoice 行。我的问题是,当我使用 SelectSingleNode 并搜索一个特定的 cbc:ID 标记时,它给我带来了文档中的第一个 cbc:ID 标记,它不在我的 XmlElement 中。我想知道这怎么可能以及如何更改我的代码,以便它只在我的元素内部读取。谢谢。
XmlNodeList elemList = root.GetElementsByTagName("cac:InvoiceLine");
XmlNodeList SatirdakiIskontoList;
Logoveri.logo_satirsayisi = elemList.Count.ToString(); //faturadaki satır sayısı
XmlNode satirno1,urunadi,urunkodu,urunmiktari,uruntutari;
string satirno;
foreach (XmlElement e in elemList)
{
LOGOSatirVeri Logosatirveri = new LOGOSatirVeri();
// Logosatirveri = new LOGOSatirVeri();
Logosatirveri.logo_uuid = Logoveri.logo_uuid;
try
{
//MALZEME-HİZMET ADI
satirno = e.SelectSingleNode("//*[name()='cac:InvoiceLine']/*
[name()='cbc:ID']").InnerText;
Logosatirveri.logo_satirno = satirno;
}
}
它应该告诉我行的 ID 为 1,2,3... 但它给我带来了我元素之外的整个 Invoice 的 ID。
解决方案
就像 Charleh 指出的那样,这是 //
将您的“尝试”代码更改为以下内容。
try
{
//MALZEME-HİZMET ADI
satirno = e.SelectSingleNode("*[name()='cac:InvoiceLine']/*[name()='cbc:ID']").InnerText;
Logosatirveri.logo_satirno = satirno;
}
推荐阅读
- python - 如何在 Python 中将字符串转换为日期时间
- angular - 在 TypeScript / Angular 4+ 中将枚举键显示为字符串
- amazon-web-services - 如何将环境变量添加到 CodeBuild buildspec.yml?
- visual-studio - 在 Visual Studio 中升级 Azure 函数项目
- rest - 将模板绑定到 Meteor 中的 ReactiveVar 数组
- google-cloud-platform - 上传新文件或更新现有文件时不断出现解决冲突错误
- c# - 使用 Visual Studio 2017 发布我的 ASP.NET MVC 项目时出现问题
- sql - Ruby ODBC noscan
- python - Django 管理员在添加/编辑表单中管理 ForeignKey
- kendo-ui - 剑道角度网格句柄错误