根级别的数据无效
本文关键字:数据 无效 | 更新日期: 2023-09-27 17:52:34
我有以下XML文档:
<?xml version="1.0" encoding="UTF-8"?>
<Offices id="0" enabled="false">
<office />
</Offices>
当我试图通过c#访问它时:
XmlDocument doc = new XmlDocument();
doc.LoadXml(HttpContext.Current.Server.MapPath("officeList.xml"));
我得到这个错误:
根级数据无效。第一行,位置1
这行有什么问题?
This:
doc.LoadXml(HttpContext.Current.Server.MapPath("officeList.xml"));
应:doc.Load(HttpContext.Current.Server.MapPath("officeList.xml"));
LoadXml()
用于加载XML字符串,而不是文件名。
记录:
"根级数据无效"意味着您试图解析非XML文档的内容。它甚至没有开始看起来像一个XML文档。它通常意味着你所发现的:你正在解析类似于字符串"C:'inetpub'wwwroot'mysite'officelist.xml"的东西。
我发现我使用的示例在第一行有一个xml文档规范。我使用的是我在这个博客条目中得到的样式表,第一行是
<?xmlversion="1.0"encoding="utf-8"?>
导致错误的。当我删除该行时,样式表以
行开始<xsl:stylesheet version="1.0" xmlns:DTS="www.microsoft.com/SqlServer/Dts" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
我的变换工作了。顺便说一下,这篇博客文章是我发现的第一个很好的、容易理解的示例,用于尝试从SSIS包的XML定义中获取信息,但是我必须为我的SSIS 2008包修改示例中的路径,所以您也可以这样做。我还创建了一个版本来从优先级约束中提取"流"。最后一个是这样的:
<xsl:stylesheet version="1.0" xmlns:DTS="www.microsoft.com/SqlServer/Dts" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="text" encoding="utf-8" />
<xsl:template match="/">
<xsl:text>From,To~</xsl:text>
<xsl:text>
</xsl:text>
<xsl:for-each select="//DTS:PrecedenceConstraints/DTS:PrecedenceConstraint">
<xsl:value-of select="@DTS:From"/>
<xsl:text>,</xsl:text>
<xsl:value-of select="@DTS:To"/>
<xsl:text>~</xsl:text>
<xsl:text>
</xsl:text>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
,并给了我一个CSV,波浪作为我的行分隔符。我将其替换为文本编辑器中的换行符,然后导入到excel中,以查看包中的数据流。