我正在嘗試從此 XML 檔案中獲取“Header”節點并將 XML 字串輸出到 C# 中的文本框,這是輸入 xml 檔案:
<?xml version="1.0" encoding="UTF-8"?>
<nsSAFT:AuditFile xmlns:nsSAFT="mfp:napz:saa:d1111:declaration:v22">
<nsSAFT:Header>
<nsSAFT:AuditFileVersion>XX</nsSAFT:AuditFileVersion>
<nsSAFT:AuditFileCountry>XX</nsSAFT:AuditFileCountry>
<nsSAFT:AuditFileDateCreated>XXX</nsSAFT:AuditFileDateCreated>
<nsSAFT:SoftwareCompanyName>XXX</nsSAFT:SoftwareCompanyName>
<nsSAFT:SoftwareID>XXXX</nsSAFT:SoftwareID>
<nsSAFT:SoftwareVersion>XXX</nsSAFT:SoftwareVersion>
<nsSAFT:Company>
<nsSAFT:RegistrationNumber>XXX</nsSAFT:RegistrationNumber>
<nsSAFT:Name>XXXX</nsSAFT:Name>
<nsSAFT:Address>
<nsSAFT:StreetName>XXX</nsSAFT:StreetName>
<nsSAFT:City>XXXX</nsSAFT:City>
<nsSAFT:PostalCode>XXX</nsSAFT:PostalCode>
<nsSAFT:Country>XXX</nsSAFT:Country>
</nsSAFT:Address>
<nsSAFT:Contact>
<nsSAFT:ContactPerson>
<nsSAFT:FirstName>XXX</nsSAFT:FirstName>
<nsSAFT:LastName>XXXX</nsSAFT:LastName>
</nsSAFT:ContactPerson>
<nsSAFT:Telephone>XXXXX</nsSAFT:Telephone>
</nsSAFT:Contact>
<nsSAFT:BankAccount>
<nsSAFT:IBANNumber>XXXX</nsSAFT:IBANNumber>
</nsSAFT:BankAccount>
</nsSAFT:Company>
<nsSAFT:DefaultCurrencyCode>XXXX</nsSAFT:DefaultCurrencyCode>
<nsSAFT:SelectionCriteria>
<nsSAFT:SelectionStartDate>XXXX</nsSAFT:SelectionStartDate>
<nsSAFT:SelectionEndDate>XXX</nsSAFT:SelectionEndDate>
</nsSAFT:SelectionCriteria>
<nsSAFT:HeaderComment>X</nsSAFT:HeaderComment>
<nsSAFT:SegmentIndex>X</nsSAFT:SegmentIndex>
<nsSAFT:TotalSegmentsInsequence>X</nsSAFT:TotalSegmentsInsequence>
<nsSAFT:TaxAccountingBasis>XXXX</nsSAFT:TaxAccountingBasis>
</nsSAFT:Header>
</nsSAFT:AuditFile>
這是我嘗試使用 originalDoc.Element("Header"); 獲取“Header”節點的方法;
XDocument originalDoc = XDocument.Load(fileName);
var list = originalDoc.Element("Header");
string output = list.ToString();
richTextBox1.Text = output;
但是在除錯器中,串列變數總是空的?
我期待的結果:
<nsSAFT:Header>
<nsSAFT:AuditFileVersion>XX</nsSAFT:AuditFileVersion>
<nsSAFT:AuditFileCountry>XX</nsSAFT:AuditFileCountry>
<nsSAFT:AuditFileDateCreated>XXX</nsSAFT:AuditFileDateCreated>
<nsSAFT:SoftwareCompanyName>XXX</nsSAFT:SoftwareCompanyName>
<nsSAFT:SoftwareID>XXXX</nsSAFT:SoftwareID>
<nsSAFT:SoftwareVersion>XXX</nsSAFT:SoftwareVersion>
<nsSAFT:Company>
<nsSAFT:RegistrationNumber>XXX</nsSAFT:RegistrationNumber>
<nsSAFT:Name>XXXX</nsSAFT:Name>
<nsSAFT:Address>
<nsSAFT:StreetName>XXX</nsSAFT:StreetName>
<nsSAFT:City>XXXX</nsSAFT:City>
<nsSAFT:PostalCode>XXX</nsSAFT:PostalCode>
<nsSAFT:Country>XXX</nsSAFT:Country>
</nsSAFT:Address>
<nsSAFT:Contact>
<nsSAFT:ContactPerson>
<nsSAFT:FirstName>XXX</nsSAFT:FirstName>
<nsSAFT:LastName>XXXX</nsSAFT:LastName>
</nsSAFT:ContactPerson>
<nsSAFT:Telephone>XXXXX</nsSAFT:Telephone>
</nsSAFT:Contact>
<nsSAFT:BankAccount>
<nsSAFT:IBANNumber>XXXX</nsSAFT:IBANNumber>
</nsSAFT:BankAccount>
</nsSAFT:Company>
<nsSAFT:DefaultCurrencyCode>XXXX</nsSAFT:DefaultCurrencyCode>
<nsSAFT:SelectionCriteria>
<nsSAFT:SelectionStartDate>XXXX</nsSAFT:SelectionStartDate>
<nsSAFT:SelectionEndDate>XXX</nsSAFT:SelectionEndDate>
</nsSAFT:SelectionCriteria>
<nsSAFT:HeaderComment>X</nsSAFT:HeaderComment>
<nsSAFT:SegmentIndex>X</nsSAFT:SegmentIndex>
<nsSAFT:TotalSegmentsInsequence>X</nsSAFT:TotalSegmentsInsequence>
<nsSAFT:TaxAccountingBasis>XXXX</nsSAFT:TaxAccountingBasis>
</nsSAFT:Header>
uj5u.com熱心網友回復:
請嘗試以下解決方案。
正如@RobertHarvey 指出的那樣,需要添加命名空間處理。
C#
void Main()
{
const string inputFile = @"e:\Temp\eXtreme.xml";
XDocument xdoc = XDocument.Load(inputFile);
XNamespace ns = xdoc.Root.GetNamespaceOfPrefix("nsSAFT");
var header = xdoc.Descendants(ns "Header").FirstOrDefault();
string output = header.ToString();
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/467244.html
上一篇:提取Outlook收件人地址