我有xml。我使用此代碼檢索信息:當沒有標籤名稱時使用Linq將xml解析爲xml
XNamespace ns = "urn:schemas-microsoft-com:office:excel";
var xdoc = XDocument.Load(@"path");
IEnumerable<string> ss = xdoc.Descendants(ns + "Crn")
.Elements(ns + "Text")
.Select(x => (string)x);
using (System.IO.StreamWriter file =
new System.IO.StreamWriter(@"path", true))
{
foreach (var x in ss)
{
file.WriteLine(x);
}
}
但我只想檢索最後 - 1標籤文本。我已經添加了文字「這個文字」。我怎樣才能做到這一點? 如果我將添加.LastOrDefault()
.Element後它拋出一個錯誤..
這是我的XML
<?xml version="1.0"?>
<?mso-application progid="Excel.Sheet"?>
<Workbook xmlns="urn:schemas-microsoft-com:office:spreadsheet"
xmlns:o="urn:schemas-microsoft-com:office:office"
xmlns:x="urn:schemas-microsoft-com:office:excel"
xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet"
xmlns:html="http://www.w3.org/TR/REC-html40">
<ExcelWorkbook xmlns="urn:schemas-microsoft-com:office:excel">
<SupBook>
<Xct>
<Crn>
<Row>9</Row>
<ColFirst>1</ColFirst>
<ColLast>3</ColLast>
<Text>02</Text>
<Text>this text</Text>
<Text>asd</Text>
</Crn>
<Crn>
<Row>10</Row>
<ColFirst>1</ColFirst>
<ColLast>3</ColLast>
<Number>25</Number>
<Text>this text</Text>
<Text>asd</Text>
</Crn>
<Crn>
<Row>11</Row>
<ColFirst>1</ColFirst>
<ColLast>3</ColLast>
<Number>62</Number>
<Text>this text</Text>
<Text>asd</Text>
</Crn>
</Xct>
</SupBook>
</ExcelWorkbook>
</Workbook>
我不能改變的XML文件。我知道必須有列名 而不是文本標籤,但它不是我寫的
這是最後一個,而不是最後 - 1. –
AHHH我C:D讓我修復 – sQuir3l
雖然現在正確,但接受的答案是更優雅和linq風格。 –