XPathException无效令牌

时间:2014-12-17 18:20:38

标签: xml exception

我正在将客户端计算机中的所有文件备份到服务器。备份每个文件后,我在XML文件中创建或更新记录。我的问题是,偶尔用于创建或查找节点的字符串包含无效令牌。用于创建或查找节点的字符串由备份文件的文件夹路径和文件名确定。

示例:
文件备份:C:\ users \ Jon_Doe \ Desktop \ Report.doc
XML文件:

<root>
  <Jon_Doe>
    <Desktop>
      <Report LastBackup="12/17/2014 11:51:10" />
    </Desktop>
  </Jon_Doe>
</root>

如果我遇到包含以下任何字符{ ' ' , ',' , '(' , ')' }的字符串,我会从字符串中删除它。但我无法确定字符串&#34; 64bitPrereq&#34;有什么问题。

如何确定字符串的哪个部分是&#39;无效令牌&#39;在使用字符串查找或创建节点之前?

1 个答案:

答案 0 :(得分:2)

  

我无法确定字符串&#34; 64bitPrereq&#34;

的错误

XML不允许以ASCII数字开头的元素名称。名称可以包含第一个字符后面的数字,点和连字符,但必须以字母或下划线开头(确切的规则稍微复杂一些,如果您关心非拉丁字符,请参阅the XML specification)。

对于这种任务,使用固定元素名称并将文件或文件夹名称存储为属性更有意义,而不是尝试将文件夹名称作为元素名称本身,例如。

<root>
  <Folder name="Jon_Doe">
    <Folder name="Desktop">
      <File name="Report" LastBackup="12/17/2014 11:51:10" />
    </Folder>
  </Folder>
</root>