我从远程服务器获取响应,其字符串包含XML,如下所示:
<?xml version="1.0" encoding="utf-16"?>
<abcTransactionSegment>
<TransactionSegment>
<RECORD_TYPE>G100</RECORD_TYPE>
<POS_TILL></POS_TILL>
<SHIFT_NO></SHIFT_NO>
<RECEIPT_NO>SC10333</RECEIPT_NO>
<TIMESTAMP>2017-08-01T20:12:35.84+05:30</TIMESTAMP>
<INV_AMT>1494.9</INV_AMT>
<TAX_AMT>269.1</TAX_AMT>
<DIS_AMT>1495</DIS_AMT>
<NET_AMT>1764</NET_AMT>
<RET_AMT>0</RET_AMT>
<CUST_NAME>MAYUR</CUST_NAME>
<TRANSACTION_STATUS>SALES</TRANSACTION_STATUS>
</TransactionSegment>
<TransactionSegment>
.
.
</TransactionSegment>
</abcTransactionSegment>
我想在不同的变量中读取每个TransactionSegment的所有子属性:
String RECEIPT_NO="SC10333";
String INV_AMT="1494.9"
提前致谢。
答案 0 :(得分:1)
您可以编写自己的XML解析器,也可以使用Linq2XML。
XElement xml = XElement.Parse(xmlResponseAsString);
IEnumerable<XElement> segmentItems = xml.Elements("TransactionSegment");
答案 1 :(得分:0)
XmlDocument doc = new XmlDocument();
//load xml
doc.Load(yourXMLString);
or
doc.LoadXml("<?xml version="1.0" encoding="utf-16"?>
<abcTransactionSegment>
<TransactionSegment>
<RECORD_TYPE>G100</RECORD_TYPE>
<POS_TILL></POS_TILL>
<SHIFT_NO></SHIFT_NO>
<RECEIPT_NO>SC10333</RECEIPT_NO>
<TIMESTAMP>2017-08-01T20:12:35.84+05:30</TIMESTAMP>
<INV_AMT>1494.9</INV_AMT>
<TAX_AMT>269.1</TAX_AMT>
<DIS_AMT>1495</DIS_AMT>
<NET_AMT>1764</NET_AMT>
<RET_AMT>0</RET_AMT>
<CUST_NAME>MAYUR</CUST_NAME>
<TRANSACTION_STATUS>SALES</TRANSACTION_STATUS>
</TransactionSegment>
<TransactionSegment>
.
.
</TransactionSegment>
</abcTransactionSegment>");
//finding node
XmlNode node = doc.DocumentElement.SelectSingleNode("/abcTransactionSegment/TransactionSegment/RECORD_TYPE");
答案 2 :(得分:0)
有多种方法可以做到这一点。使用XML反序列化的最佳方法。以下是使用LINQ的替代方法。
day
答案 3 :(得分:0)
您可以使用XML反序列化。 创建一个TransactionSegment模型
public int RECORD_TYPE {get;set;}
pub string POS_TILL {get;set;}
Dim a List<TransactionSegment> Model listTransactionSegment
System.IO.StringReader stringReader = new System.IO.StringReader(Xml);
System.Xml.Serialization.XmlSerializer xmlSerializer = new
System.Xml.Serialization.XmlSerializer(typeof(List<TransactionSegment>));
//
listTransactionSegment=xmlSerializer.Deserialize(stringReader) as
List<TransactionSegment>;