これは私のXMLファイルで、xmlnsを含んでいます。私は動的ファイルのすべてのノードを読み込もうとしています。Linq to XML Read XPath(すべてのノードを読む)
最初のノード(ドキュメント)は正常に動作しますが、他のノードは正常に動作します。
これで私を助けることができます。
<?xml version="1.0" encoding="UTF-8"?><Document>
<BkToCstmrAcctRpt xmlns="urn:iso:std:iso:325235:tech:xsd:camt.052.001.03">
<GrpHdr>
<MsgId>NONREF</MsgId>
<CreDtTm>2017-09-27T15:10:01.597560</CreDtTm>
<MsgPgntn>
<PgNb>1</PgNb>
<LastPgInd>true</LastPgInd>
</MsgPgntn>
</GrpHdr>
<Rpt>
<Id>T2S</Id>
<CreDtTm>2017-09-27T15:10:01.597560+02:00</CreDtTm>
<Acct>
<Id>
<Othr>
<Id>24234234234234234234we234</Id>
</Othr>
</Id>
<Ccy>EUR</Ccy>
<Ownr>
<Id>
<OrgId>
</OrgId>
</Id>
</Ownr>
<Svcr>
<FinInstnId>
<BICFI>HJASDESPBESMMXXX</BICFI>
</FinInstnId>
</Svcr>
</Acct>
<Bal>
<Tp>
<CdOrPrtry>
<Prtry>CASH</Prtry>
</CdOrPrtry>
</Tp>
<Amt Ccy="EUR">0.00</Amt>
<CdtDbtInd>CRDT</CdtDbtInd>
<Dt>
<Dt>2017-09-27</Dt>
</Dt>
</Bal>
<Bal>
<Tp>
<CdOrPrtry>
<Prtry>PCAS</Prtry>
</CdOrPrtry>
</Tp>
<Amt Ccy="EUR">469035826.79</Amt>
<CdtDbtInd>CRDT</CdtDbtInd>
<Dt>
<Dt>2017-09-27</Dt>
</Dt>
</Bal>
<Bal>
<Tp>
<CdOrPrtry>
<Prtry>AOIC</Prtry>
</CdOrPrtry>
</Tp>
<Amt Ccy="EUR">0.00</Amt>
<CdtDbtInd>CRDT</CdtDbtInd>
<Dt>
<Dt>2017-09-27</Dt>
</Dt>
</Bal>
<Bal>
<Tp>
<CdOrPrtry>
<Prtry>SPCA</Prtry>
</CdOrPrtry>
</Tp>
<Amt Ccy="EUR">469035826.79</Amt>
<CdtDbtInd>CRDT</CdtDbtInd>
<Dt>
<Dt>2017-09-27</Dt>
</Dt>
</Bal>
<TxsSummry>
<TtlNtriesPerBkTxCd>
<NbOfNtries>0</NbOfNtries>
<Sum>0.00</Sum>
<CdtDbtInd>CRDT</CdtDbtInd>
<BkTxCd>
<Prtry>
<Cd>AVLI</Cd>
</Prtry>
</BkTxCd>
</TtlNtriesPerBkTxCd>
<TtlNtriesPerBkTxCd>
<NbOfNtries>313</NbOfNtries>
<Sum>469035826.79</Sum>
<CdtDbtInd>CRDT</CdtDbtInd>
<BkTxCd>
<Prtry>
<Cd>AVSI</Cd>
</Prtry>
</BkTxCd>
</TtlNtriesPerBkTxCd>
</TxsSummry>
</Rpt>
</BkToCstmrAcctRpt>
</Document>
そして、これが私のソースコードです:
using (XmlReader reader = XmlReader.Create(_ms))
{
var docXml = XDocument.Load(reader);
var prefix = ((XElement)(docXml.Root.FirstNode)).Name.LocalName;
var nameSpace = ((XElement)(docXml.Root.FirstNode)).Name.NamespaceName;
XmlNameTable nameTable = reader.NameTable;
XmlNamespaceManager namespaceManager = new XmlNamespaceManager(nameTable);
namespaceManager.AddNamespace(string.Empty, nameSpace);
var filterOpt = docXml.Root.Document.XPathSelectElements("BkToCstmrAcctRpt", namespaceManager);
}
私はドキュメントを[OK]を動作しますが、私は読んしようとした場合、//ドキュメント/ BkToCstmrAcctRptまたは別のサブノード結果// XPathを読めばcount = 0
可能な複製(https://stackoverflow.com/questions/2998710/xdocument-containing-namespaces) – rene
をそれが重複質問はありません。 XMLは異なりますが、ノードヘッダー名前空間はありません。 – darthlitox
解決策は同じです... – rene