2011-10-12 31 views
0

我有具有類似於「4.2」分手XML字符串在C#

數據稱爲「structNumber」的XML節點我使用選擇節點:

XmlNode xnChapNr = xDoc.SelectSingleNode("//./structNumber"); 

而目前我展示它由:

string chapNr = (xnChapNr == null) ? "X" : xnChapNr.InnerText 

然後這將顯示整個字符串'4.2'。

然而,我需要的是一種只選擇'4'和'2'的方法。

是否存在InnerText的擴展名?我已經閱讀了文檔,但沒有任何內容符合我的意願。

如果知道有幫助,這段代碼完成的工作是產生一個XML文檔的樹形結構。即: 第4章,第 4.1, 分節4.1.1, 第4.2節, 等...

任何及所有的幫助將非常感激。

+0

不'Split'你想要做什麼? 'string [] chapNrs =(xnChapNr ??「」「).Split(」。「。ToCharArray(),StringSplitOptions.RemoveEmptyEntries);'此後數組將爲空或包含一個或多個章節號。然後,如果「.Length == 0」,或者做任何你打算對數組執行的操作,你都可以打印'X' –

回答

0

string chapNr = (xnChapNr == null) ? "X" : xnChapNr.InnerText.ToString().Split(new char[]{'.'})[0]將返回4和

string chapNr = (xnChapNr == null) ? "X" : xnChapNr.InnerText.ToString().Split(new char[]{'.'})[1]將返回2

+0

非常感謝!它很簡單,當你看到它。 – Nate

0

您正在查找的內容與XML無關,但與字符串操作無關。你所尋找的是拆分功能http://msdn.microsoft.com/en-us/library/b873y76a.aspx

+0

儘管注意到如果他很樂意改變XML結構,可以用XSLT來實現:http:// stackoverflow.com/questions/136500/does-xslt-have-a-split-function –

+0

感謝您使用XSLT的建議,我甚至沒有考慮過。然而,在這種情況下,我認爲只要像你自己和其他人所建議的那樣使用Split就比較容易。 – Nate