我有一个XML文档:
<?xml version="1.0" encoding="utf-8"?>
<directoryresponse xmlns="https://www.sisow.nl/Sisow/REST" version="1.0.0">
<directory>
<issuer>
<issuerid>01</issuerid>
<issuername>ABN Amro Bank</issuername>
</issuer>
<issuer>
<issuerid>02</issuerid>
<issuername>ASN Bank</issuername>
</issuer>
</directory>
</directoryresponse>这是行不通的:
var banks = doc.Descendants("issuer").Select(x =>
new Bank(Convert.ToInt32(x.Element("issuerid").Value), x.Element("issuername").Value)).ToList();但是当我手动删除directoryresponse命名空间xmlns="https://www.sisow.nl/Sisow/REST"时,它就能工作了!名称空间url是一个404。那么,如果名称空间是404,为什么xdoc不忽略它呢?
这也不起作用:var banks = doc.Elements().Where(e => e.Name.LocalName == "issuer" ).Select(...
主要问题是:如何修改代码,使其忽略404命名空间?
发布于 2012-07-19 07:13:07
URL本身在这里是不相关的-它只是名称空间的一个标记,真的。我不相信LINQ会尝试获取它。
但是,您需要使用它来构造要搜索的XName:
XNamespace ns = "https://www.sisow.nl/Sisow/REST";
var banks = doc.Descendants(ns + "issuer")
.Select(x => new Bank((int) x.Element(ns + "issuerid"),
(string) x.Element(ns + "issuername"))
.ToList();https://stackoverflow.com/questions/11555609
复制相似问题