2016-01-28 63 views
1

我在嘗試讀取無效的自動關閉XML元素時遇到問題。 的XML是這樣的:.NET讀取無效的自動關閉XML元素

<a key='value'> 
    <b key2='value2'> 
    <c importantkey='importantvalue'> 
    </b> 
</a> 

通過使用.NET的XmlDocument類和XPath,我無法檢索元素「C」,因爲它是一個無效的標籤。

我無法控制XML,因爲它是從API傳遞的。更具體地說,tumblr的XML for API將以上述XML格式呈現視頻文章。 因此,我無法檢索XML元素。我只能檢索到最多a元素。

是否有任何解決方法,允許我檢索'c'元素作爲XML節點?

+3

這甚至不是有效的XML,您無法用XML解析器解析無效的XML。你知道自我關閉意味着什麼嗎?它是如何表現的?我懷疑它實際上是來自那樣的API,你必須在前面的步驟中「處理」它。 –

+1

自閉標籤的工作原理就像.. right ..? – Alan

回答

1

首先,invalid and not well-formed之間有區別。

您的「XML」是不正確。

爲了使其充分形成,改變

<c importantkey='importantvalue'> 

<c importantkey='importantvalue'/> 

<c importantkey='importantvalue'></c> 

直到你做出任何改變,你有文本數據是不是XML,和你不能指望任何一致的XML處理器來幫助你。

+0

嗨,理解斜槓或關閉標籤使其格式良好。然而,tumblr的API並沒有這樣說。它給我而不是有效的。 – Alan

+1

然後Tumblr的API沒有給你XML,你不能使用XML工具來處理它。在嘗試使用任何XML處理器之前,先將其作爲***文本***進行處理。您可以嘗試使用[** Tidy **](http://www.html-tidy.org/)進行修復。 – kjhughes

+0

然後它很奇怪..因爲我正在他們的網站上的文檔 https://www.tumblr.com/docs/en/api/v1 – Alan