[英]Read xml node value
如何從 xml 文件下方讀取所有 ExportHeaderType 節點值。
<ArrayOfCEDataFileMappingSaveProp xmlns="http://schemas.datacontract.org/2004/07/Test.Models" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
<CEDataFileMappingSaveProp>
<HeaderTypes>
<ExportHeaderType>
<AppType>LBX</AppType>
<DocType>Batch</DocType>
<HeaderType>Detail</HeaderType>
<CheckboxField>true</CheckboxField>
<DataFileMapPK>4</DataFileMapPK>
<IsHeaderRequired>false</IsHeaderRequired>
<IsHeaderTypeMandatory>true</IsHeaderTypeMandatory>
<Sequence>0</Sequence>
</ExportHeaderType>
</HeaderTypes>
<DocAppTypeId>LBX</DocAppTypeId>
<DocTypeId>Batch</DocTypeId>
<IsHeadingAvailable>false</IsHeadingAvailable>
</CEDataFileMappingSaveProp>
<CEDataFileMappingSaveProp>
<HeaderTypes>
<ExportHeaderType>
<AppType>LBX</AppType>
<DocType>Check</DocType>
<HeaderType>Detail</HeaderType>
<CheckboxField>true</CheckboxField>
<DataFileMapPK>4</DataFileMapPK>
<IsHeaderRequired>false</IsHeaderRequired>
<IsHeaderTypeMandatory>true</IsHeaderTypeMandatory>
<Sequence>0</Sequence>
</ExportHeaderType>
</HeaderTypes>
<DocAppTypeId>LBX</DocAppTypeId>
<DocTypeId>Check</DocTypeId>
<IsHeadingAvailable>false</IsHeadingAvailable>
</CEDataFileMappingSaveProp>
</ArrayOfCEDataFileMappingSaveProp>
嘗試以下操作:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml;
using System.Xml.Serialization;
namespace ConsoleApplication11
{
class Program
{
const string FILENAME = @"c:\temp\test.xml";
static void Main(string[] args)
{
XmlReader reader = XmlReader.Create(FILENAME);
XmlSerializer serializer = new XmlSerializer(typeof(ArrayOfCEDataFileMappingSaveProp));
ArrayOfCEDataFileMappingSaveProp array = (ArrayOfCEDataFileMappingSaveProp)serializer.Deserialize(reader);
}
}
[XmlRoot(Namespace = "http://schemas.datacontract.org/2004/07/Test.Models")]
public class ArrayOfCEDataFileMappingSaveProp
{
[XmlElement("CEDataFileMappingSaveProp")]
public List<CEDataFileMappingSaveProp> saveProp { get; set; }
}
public class CEDataFileMappingSaveProp
{
public string DocAppTypeId { get; set; }
public string DocTypeId { get; set; }
public Boolean IsHeadingAvailable { get; set; }
[XmlArray("HeaderTypes")]
[XmlArrayItem("ExportHeaderType")]
public List<HeaderTypes> headers { get; set; }
}
public class HeaderTypes
{
public string AppType { get; set; }
public string DocType { get; set; }
public string HeaderType { get; set; }
public Boolean CheckboxField { get; set; }
public int DataFileMapPK { get; set; }
public Boolean IsHeaderRequired { get; set; }
public Boolean IsHeaderTypeMandatory { get; set; }
public int Sequence { get; set; }
}
}
嘗試這個
XmlSerializer serializer = new XmlSerializer(typeof(ArrayOfCEDataFileMappingSaveProp));
ArrayOfCEDataFileMappingSaveProp result;
using (StringReader reader = new StringReader(xml))
result = (ArrayOfCEDataFileMappingSaveProp)serializer.Deserialize(reader);
List<ExportHeaderType> exportHeaderTypes = result.CEDataFileMappingSaveProp.Select(c => c.HeaderTypes.ExportHeaderType).ToList();
結果(json 格式)
[{"AppType":"LBX","DocType":"Batch","HeaderType":"Detail","CheckboxField":"true","DataFileMapPK":"4","IsHeaderRequired":"false","IsHeaderTypeMandatory":"true","Sequence":"0"},
{"AppType":"LBX","DocType":"Check","HeaderType":"Detail","CheckboxField":"true","DataFileMapPK":"4","IsHeaderRequired":"false","IsHeaderTypeMandatory":"true","Sequence":"0"}]
班級
[XmlRoot(ElementName = "ArrayOfCEDataFileMappingSaveProp", Namespace = "http://schemas.datacontract.org/2004/07/Test.Models")]
public class ArrayOfCEDataFileMappingSaveProp
{
[XmlElement(ElementName = "CEDataFileMappingSaveProp", Namespace = "http://schemas.datacontract.org/2004/07/Test.Models")]
public List<CEDataFileMappingSaveProp> CEDataFileMappingSaveProp { get; set; }
[XmlAttribute(AttributeName = "xmlns")]
public string Xmlns { get; set; }
[XmlAttribute(AttributeName = "i", Namespace = "http://www.w3.org/2000/xmlns/")]
public string I { get; set; }
}
[XmlRoot(ElementName="ExportHeaderType")]
public class ExportHeaderType {
[XmlElement(ElementName="AppType")]
public string AppType { get; set; }
[XmlElement(ElementName="DocType")]
public string DocType { get; set; }
[XmlElement(ElementName="HeaderType")]
public string HeaderType { get; set; }
[XmlElement(ElementName="CheckboxField")]
public bool CheckboxField { get; set; }
[XmlElement(ElementName="DataFileMapPK")]
public int DataFileMapPK { get; set; }
[XmlElement(ElementName="IsHeaderRequired")]
public bool IsHeaderRequired { get; set; }
[XmlElement(ElementName="IsHeaderTypeMandatory")]
public bool IsHeaderTypeMandatory { get; set; }
[XmlElement(ElementName="Sequence")]
public int Sequence { get; set; }
}
[XmlRoot(ElementName="HeaderTypes")]
public class HeaderTypes {
[XmlElement(ElementName="ExportHeaderType")]
public ExportHeaderType ExportHeaderType { get; set; }
}
[XmlRoot(ElementName="CEDataFileMappingSaveProp")]
public class CEDataFileMappingSaveProp {
[XmlElement(ElementName="HeaderTypes")]
public HeaderTypes HeaderTypes { get; set; }
[XmlElement(ElementName="DocAppTypeId")]
public string DocAppTypeId { get; set; }
[XmlElement(ElementName="DocTypeId")]
public string DocTypeId { get; set; }
[XmlElement(ElementName="IsHeadingAvailable")]
public bool IsHeadingAvailable { get; set; }
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.