• 您的位置我爱Aspx >> XML/XLST >> 在.NET Framework中轻松处理XML数据(二)
  • 在.NET Framework中轻松处理XML数据(二)

  • 作者:aspxer  来源:internet  日期:2007-5-6 11:38:44  关键字:.net,xml,数据
  • XmlConvert类提供了把非XML标准的命名转换成标准的XML命名的功能。当标签名中包含有无效的XML字符时,EncodeName 和 DecodeName方法能把它们调整成符合Schema的XML命名。包括SQL Server™ 和Microsoft Office,这些应用程序允许及支持Unicode文档,然而,这些文档中的字符有些也不是有效的XML命名。典型的情况是在你处理数据库中包含空格的列名时。虽然SQL Server允许长列名,但这对XML流来说可能就不是有效的命名。空格会被十六进制代码Invoice_0x0020_Details替代。下面的代码演示了怎么样在程序中获得该字符串:

    XmlConvert.EncodeName("Invoice Details");

    与此相反的方法是DecodeName。该方法把XML文本转换成其原始的格式。要注意的是它只能转换完整的十六进制代码,只有_0x0020_才被当成一个空格,而_0x20_就不是了:

    XmlConvert.DecodeName("Invoice_0x0020_Details");

    在XML文档中的空格即重要也不重要。说它重要,是当它出现在元素的内容中或者它在注释语句中时,它能表示实际意义。例如下面的情况:

    <MyNode xml:space="preserve">

    <!-- any space here must be preserved -->

    •••

    </MyNode>

    在xml中,空格不只是代表空格(空白),也代表回车、换行和缩进。

    通过XmlTextReader类的WhiteSpaceHandling属性你可以处理空格。这个属性接受及返回一个WhiteSpaceHandling枚举值(该枚举类有三种可选值)。默认值是All,它表示有意义和无意义的空格都会作为节点返回---- 分别为SignificantWhitespace和Whitespace节点。 另一个枚举值是None,它表示对任何空格都不作为节点返回。最后,就是Signficant枚举值,它表示忽略没有意义的空格,而只返回节点类型为SignficantWhitespace的节点。注意WhiteSpaceHandling属性是少数阅读器属性中的一个。它能被改变在任何时候和给Read操作带来影响。而Normalization及 XmlResolver属性是“Sensitive”的。

    [1] [2] 下一页 我对这篇文章有话说?
  • 广告位招租,广告代号:content_468_15
  • 上一篇:在.NET Framework中轻松处理XML数据(三)
    下一篇:基于XML的下拉菜单(源代码)