[英]XDocument.parse parsing string as one element
當我使用 XDocument.parse 時,它將整個字符串解析為一個元素。解析的文檔沒有結構。我正在使用正則表達式查找 XML 字符串我需要處理。這是我的代碼
int total=1;
List<XDocument> documents = new List<XDocument>();
Match collection = Regex.Match(innerXMl, @"<claimDetails" + total + @">[\s\S]+
<\/claimDetails" + total + ">");
Regex regex = new Regex(@"<[\/]{0,1}?claimDetails"+total+">");
System.Xml.XmlDocument document = new System.Xml.XmlDocument();
if (collection.Success)
{
string value = collection.Value;
value
變量的值為
<claimDetails1>
<regNo1>DL12SG7754</regNo1>
<chasisNo1>ME4JF505EG7144924</chasisNo1>
<engineNo1>JF50E73144192</engineNo1>
<insurerName1>Shriram General Insurance Co. Ltd.</insurerName1>
<typeOfClaim1>OD</typeOfClaim1>
<dateOfLoss1>2020-02-06</dateOfLoss1>
<claimIntimationDate1>2020-02-12</claimIntimationDate1>
<ODClaimsPaid1>8954</ODClaimsPaid1>
<whetherTotalLossClaim1>No</whetherTotalLossClaim1>
<whetherTheftClaim1>No</whetherTheftClaim1>
<totalTPClaimsPaid1>0.0</totalTPClaimsPaid1>
<tpOpenClaimProvison1>0</tpOpenClaimProvison1>
<tpCloseClaimProvison1>0</tpCloseClaimProvison1>
<expensesPaid1>0</expensesPaid1>
<claimstatus1>Claim Fully settled</claimstatus1>
<searchBasedOn1>REG_NUM</searchBasedOn1>
</claimDetails1>
我想把它解析成 Xdocument。
documents.Add(XDocument.Parse(value));
}
上面的行將值變量解析為 Xdocument object 沒有錯誤,但整個文檔只有一個元素,即claimDetails1
和innerXml as entire thing in between
。請幫助。
XDocument.Parse 從您傳遞的字符串創建一個 XDocument。 然后使用 XDocument 反序列化 XML 以獲得所需的值。
看看https://docs.microsoft.com/en-us/dotnet/api/system.xml.linq.xdocument.parse?=view。
您的問題並不完全清楚,也不確定您所說的“無結構”是什么意思(即它是一個不解析的壞 xml 還是只是隨機結構化數據),所以如果它不是您正在尋找的,我會更新我的答案為了。
List<XElement> documents = new List<XElement>();
XDocument xdoc = XDocument.Parse(EntireXMLstring);
if (xdoc.Descendants("claimDetails1").Any())
{
IEnumerable<XElement> requiredNode = xDoc.Descendants("claimDetails");
documents.AddRange(requiredNode);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.