作为子节点读取的XML注释 我有一些代码,在XML文件中读取,作为输入到计算机模型(用C++编写,用VS2012编译)。在对一些输入数据的XML格式进行更新后,软件停止以新格式读取文件(代码已更改以适应新的数据格式),经调查,很明显,这是因为新的数据格式在XML文件中包含注释,而XML解析器(msxml6)在该文件中正在作为子节点计数。因此,它读取的第一个子节点无法理解,软件按设计退出

作为子节点读取的XML注释 我有一些代码,在XML文件中读取,作为输入到计算机模型(用C++编写,用VS2012编译)。在对一些输入数据的XML格式进行更新后,软件停止以新格式读取文件(代码已更改以适应新的数据格式),经调查,很明显,这是因为新的数据格式在XML文件中包含注释,而XML解析器(msxml6)在该文件中正在作为子节点计数。因此,它读取的第一个子节点无法理解,软件按设计退出,c++,xml,msxml6,C++,Xml,Msxml6,虽然我们现在已经解决了这个问题(通过从XML文件中删除不完全必要的注释),但我想知道是否有人知道解析器为什么认为这些注释是子节点?我的印象是,注释应该被解析器忽略?在大多数XML树模型(例如DOM)中,注释实际上是包含元素的子节点,由应用程序在读取树时确保跳过它们 忘记这一点是一个常见的错误,想象一下,当您在没有注释的源文档上测试应用程序时,如果发送者选择包含注释,它将继续工作 在将文档传递给应用程序之前从文档中剥离注释是解决问题的一种方法(这是一种非常简单的XSLT转换),但如果应用程序首先编

虽然我们现在已经解决了这个问题(通过从XML文件中删除不完全必要的注释),但我想知道是否有人知道解析器为什么认为这些注释是子节点?我的印象是,注释应该被解析器忽略?

在大多数XML树模型(例如DOM)中,注释实际上是包含元素的子节点,由应用程序在读取树时确保跳过它们

忘记这一点是一个常见的错误,想象一下,当您在没有注释的源文档上测试应用程序时,如果发送者选择包含注释,它将继续工作


在将文档传递给应用程序之前从文档中剥离注释是解决问题的一种方法(这是一种非常简单的XSLT转换),但如果应用程序首先编写为处理注释,则效果会更好

在大多数XML树模型(例如DOM)中,注释实际上是包含元素的子节点,由应用程序在读取树时确保跳过注释

忘记这一点是一个常见的错误,想象一下,当您在没有注释的源文档上测试应用程序时,如果发送者选择包含注释,它将继续工作


在将文档传递给应用程序之前从文档中剥离注释是解决问题的一种方法(这是一种非常简单的XSLT转换),但如果应用程序首先编写为处理注释,则效果会更好

请不要在标题中添加标签。“我有一些代码”-但这太秘密了,无法分享,所以我们只能猜测到底出了什么问题?请阅读,这不是一个保密的案例,只是代码与我的问题无关——整个第一部分只是为了上下文而添加的。我对最初的问题有了一个解决方案,现在我正在试图理解为什么这个问题会首先出现。标题中没有标签,请。“我有一些代码”-但它太秘密了,无法分享,所以我们只能猜测出哪里出了问题?请阅读,这不是一个保密的案例,只是代码与我的问题无关——整个第一部分只是为了上下文而添加的。我对最初的问题有了一个解决方案,现在我正试图理解为什么这个问题会首先出现。