2011-02-14 20 views
2
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?> 
<eRecon xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:noNamespaceSchemaLocation="eRecon.xsd"> 
<Header> 
    <Company Code="" /> 
    <CommonCarrierCode /> 
    <InputFileName InputIDPk="">F:\ReconNew\TmesysRec20100111.rec</InputFileName> 
    <BatchNumber>000152</BatchNumber> 
    <InputStartDateTime>2010-02-26 11:47:00</InputStartDateTime> 
    <InputFinishDateTime>2010-02-26 11:47:05</InputFinishDateTime> 
    <RecordCount>8</RecordCount> 
    </Header> 
<Detail> 
    <CarrierStatusDate>2010-01-11</CarrierStatusDate> 
    <ClaimNum>YDF02892 C</ClaimNum> 
    <InvoiceNum>0108013775</InvoiceNum> 
    <LineItemNum>001</LineItemNum> 
    <NABP>10600211</NABP> 
    <RxNumber>4695045</RxNumber> 
    <RxDate>2008-07-21</RxDate> 
    <CheckNum /> 
    <PaymentStatus>PENDING</PaymentStatus> 
    <RejectDescription /> 
    <InvoiceChargeAmount>152.15</InvoiceChargeAmount> 
    <InvoicePaidAmount>131.00</InvoicePaidAmount> 
</Detail> 
</eRecon> 

提取的XML代碼的一部分如何可以提取從上述的XML文件的部分如何從一個XML文件使用C#代碼

<Header> 
    <Company Code="" /> 
    <CommonCarrierCode /> 
    <InputFileName InputIDPk="">F:\ReconNew\TmesysRec20100111.rec</InputFileName> 
    <BatchNumber>000152</BatchNumber> 
    <InputStartDateTime>2010-02-26 11:47:00</InputStartDateTime> 
    <InputFinishDateTime>2010-02-26 11:47:05</InputFinishDateTime> 
    <RecordCount>8</RecordCount> 
</Header> 

我需要的C#代碼從XML文件中提取XML標籤的一部分。

+0

我需要的代碼從給定的XML文件中提取XML標籤的任何部分,不僅頭part.Any XML部分必須提取。 – user578104 2011-02-14 06:29:35

回答

4

如果文件不是太大(超過幾MB的),您可以將其加載到XmlDocument

XmlDocument doc = new XmlDocument(); 
doc.Load(@"C:\yourfile.xml"); 

,然後可以爲<Header>元件使用XPath表達式解析:

XmlNode headerNode = doc.SelectSingleNode("/eRecon/Header"); 
if(headerNode != null) 
{ 
    string headerNodeXml = headerNode.OuterXml; 
} 
+0

感謝您的回覆。 – user578104 2011-02-14 06:27:40

+0

我需要代碼從給定的xml文件中提取xml標記的任何部分,而不僅僅是標題部分。任何xml部分都必須提取。我只是顯示提取標題部分作爲示例。請幫助我。 – user578104 2011-02-14 06:33:05

+0

@ user578104:如果您需要提取另一部分,只需修改XPath表達式! '/ eRecon/Header`字符串定義要提取的內容 - 如果您需要其他內容,只需調整它即可。學習XPath! – 2011-02-14 07:09:50

0

使用LINQ到XML:

XDocument xmlDoc = XDocument.Load(@"c:\sample.xml"); 
var header = xmlDoc.Descendants("Header").FirstOrDefault(); 
0

LINQ的版本

string [email protected]"d:\xml.xml"; 
var descendants = from i in XDocument.Load(fileName).Descendants("Header") 
select i;