2017-03-09 36 views
1

如何區分表格內外的元素?另外,如何驗證沒有內容控制名稱的表?獲取OpenXML中表格元素內外的元素

+0

你有什麼嘗試?你在使用特定的庫或SDK嗎?你是直接在xml上工作嗎? –

+0

還沒有嘗試過任何成功。 這是我的代碼 'tags = mainPart.Document.Body.Descendants ()。 其中(t => t.Parent.LocalName ==「tr」)。 選擇(t => t.SdtProperties.GetFirstChild ().Val).ToList();' 但它是不正確的,因爲我正在尋找表父母,而不是tr,我需要驗證表父母是被塊元素包圍。 我正在使用OpenXML 4.0庫。 –

+0

請修改您的帖子以包含您嘗試過的內容 –

回答

1

我建議你使用Linq To XML。在MSDN上有一個Word文檔的example console application that displays all paragraph text

接近底部的是註釋 - 查找文檔中的所有段落 - 這是Linq To XML塊,它從Word文檔的正文中提取段落。

// Find all paragraphs in the document. 
    var paragraphs = 
     from para in xDoc 
        .Root 
        .Element(w + "body") 
        .Descendants(w + "p") ... 

取而代之的是"p",你將需要使用"tbl"。這是如何收集文檔中的所有表格以驗證其內容。要檢查每行和每列將涉及更多的代碼來循環表數據,但這應該讓你開始。

如果您安裝了Open XML Productivity Tool,則可以查看任何Open XML文檔的所有xml。下面的屏幕顯示了帶有包含表格的Word文檔的工具。

[enter image description here]

左窗格顯示在Word文檔的典型表的結構。右邊是Open XML Table規範。該工具可幫助您瞭解要讀取的內容以及在將您的liq寫入xml代碼以讀取和驗證表中的數據時要忽略的內容。

如果你有一個特定的表格格式,你需要爲你的項目閱讀而且你被卡住了,在另一個問題中發佈表格和你試過的代碼。否則根據你的原始問題,這個答案應該足以幫助你開始解決你的問題。