簡體   English   中英

名稱不能以“1”字符開頭,十六進制值0x31。 第2行,第2位

[英]Name cannot begin with the '1' character, hexadecimal value 0x31. Line 2, position 2

在C#應用程序中加載XML文件時,我得到了

名稱不能以“1”字符開頭,十六進制值0x31。 第2行,第2位。

XML標記就像這樣開始。

<version="1.0" encoding="us-ascii" standalone="yes" />
<1212041205115912>

我不應該不惜一切代價改變這個標簽。

我該如何解決這個問題?

您應該更改標記名稱,因為您編寫的標記名稱違反了xml標准 只是為了記住它的有趣部分:

XML命名規則

XML 元素 必須遵循以下命名規則:

  • 名稱可以包含字母,數字和其他字符
  • 名稱不能以數字或標點字符開頭
  • 名稱不能以字母xml(或XML或Xml等)開頭
  • 名稱不能包含空格

可以使用任何名稱,不保留任何單詞。

作為解決您的問題的建議,保持標准:

  1. 使用屬性,即< Number value="1212041205115912"/>
  2. 為標記添加前綴,即<_1212041205115912/>

當然你可以通過編寫自己的格式解析器來保存你提出的結構,但是我可以說這將是一個非常糟糕的主意,因為將來有人可能會擴展格式並且不會很高興看到看起來像這樣的文件xml實際上不是,他/她可以為此生氣 此外,如果你想要你的自定義格式,使用更簡單的東西,我的意思是:如果文本文件不是官方認可的格式,那么使用“<”和“>”來刪除文本文件不會增加任何值,最好使用類似的東西。一個簡單的純文本文件。

如果你絕對不能改變它 ,例如。 由於某種原因,格式已經在野外,並被其他系統/客戶/其他人使用。

由於它是一個無效的xml文檔,請在解析之前嘗試清理它。 例如。 制作一個正則表達式,用<IMessedUp> number </ IMessedUp>替換所有<number>標簽,然后解析它。

有點不確定的方式,但我會解決你的問題。

如果您需要處理此文檔,請不要將其視為XML,並拋棄使用XML工具處理它的任何想法。 您正在處理專有格式,您需要編寫自己的工具來處理它。 如果您希望使用XML技術的好處,則必須重新設計文檔,使其成為有效的XML。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM