是否可以在标签内保留空格?
我正在使用 XPathNodeIterator 访问 XPathDocument 中的 XML 节点(包含 XHTML 内容)。
节点中的一些标签不是“严格”的 XHTML(这在工具的最终输出中是允许的)。一些节点包含没有尾随空格的图像标签。
<img src="filename.png" alt="description"/>
当我存储生成的节点时,它们会用尾随空格很好地格式化。
<img src="filename.png" alt="description" />
是否可以获取节点内容,保留标签内间距(在这种情况下没有空间)?我正在考虑类似于 PreserveWhitespace 的东西。
使用的代码的简化示例
xmlDoc = New XPathDocument(fileIn, xmlSpace.Preserve)
xmlNav = xmlDoc.CreateNavigator()
Dim xmlNode As XPathNodeIterator
Dim ns As XmlNamespaceManager = new XmlNamespaceManager(xmlNav.NameTable)
xmlNode = xmlNav.Select("/export/contents[target[@translate='True']]")
While xmlNode.MoveNext()
target = xmlNode.Current.selectSingleNode("target").InnerXML
' ... '
End While
一些背景知识:正如 Marc 指出的那样,对于标签内的非重要空白(或相关的标签顺序),生成的 XML 的含义没有区别。
我遇到的主要问题是数据来自处理新内容和旧内容的 CMS 系统。内容创建过程最近才转移到 XML/XHTML,因此系统中仍然存在较旧的非严格 XHTML 内容。
使用的 QA 工具仍然主要基于文本并为 HTML 构建,并由另一个部门运行(QA 流程将需要调整/更新)。这就是为什么我现在希望标签尽可能接近原始格式。
作为临时解决方法,我添加了一些正则表达式(比较新版本和以前版本的节点)来搜索和修复通过使用 .NET 解析 XML 引入的“差异”