[英]Loading and reading XML file fails on its processing instruction
我陷入了一個微妙的問題。 我嘗試構建一個C#4.0控制台應用程序來讀取XML文件。
XML文件如下:
<?xml version="1.0" encoding="UTF-8"?>
<?xml:stylesheet type='text/xsl' href='report.xsl' version='1.0'?>
...
<logs>
...
</logs>
這是我的代碼:
...
var root = XDocument.Load(xmlStream);
IEnumerable<XElement> address =
from el in root.Descendants("formated-text")
select el;
...
這在Load方法中給出了以下錯誤:
':'字符,十六進制值0x3A,不能包含在名稱中。 第2行,第6位。
將第二行的冒號更改為' - '可以解決錯誤... duh
我可以在我的代碼中做什么來讀取源XML而不必先替換'stupid'冒號?
謝謝!
它看起來像你只是有一個無效的XML文檔。 結腸應該是連字符(根據W3C )。 我懷疑你是否能夠使LINQ to XML解析一個無效的文檔 - 你不應該嘗試。 您應該修改文檔。
冒號錯了,你應該使用破折號
沒有。 那個“愚蠢的冒號”在那個位置根本無效。
我發現這些“格式錯誤”的XML文件的起源可以追溯到1990年代中期......是的,今天這樣一個舊系統仍然在使用,仍然會產生這種輸出。 我可以在代碼中使用解決方法。
感謝您花時間為這些XML元素提供了一些有用的線索。
我需要確認源XML的創建者在冒號時出錯了。
我已經實施了一個計划B,直到我能說服一個非常大的部門(不是我的部門)來改變他們的申請......:o(
計划B是首先讀取XML文件並替換所有'xml:'出現。 然后將此更正的文件提供給我的流程。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.