在标签内保留空格是可能的吗?
我正在使用XPathNodeIterator获取XPathDocument中包含XHTML内容的XML节点。
节点中的一些标签不是“严格的”XHTML(这在该工具的最终输出中是允许的)。一些节点包含的图像标签没有尾随空格。
<img src="filename.png" alt="description"/>
当我存储结果节点时,它们会以带尾随空格的漂亮格式进行格式化。
<img src="filename.png" alt="description" />
Is it possible to get the node contents, preserving the in-tag spacing (in this case not have the space)? I was thinking about something similar to 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
一些背景:正如马克指出的,在标签内的非显著空格(或标签顺序)方面,生成的 XML 的含义没有区别。
我遇到的主要问题是数据来自一个处理新旧内容的CMS系统。内容创建过程最近刚刚转移到了XML/XHTML,因此系统中仍有旧的非严格XHTML内容。
使用的QA工具仍然主要基于文本构建为HTML,并由另一个部门运行(QA过程需要进行调整/更新)。这就是为什么我现在希望尽可能保持标记与原始格式接近的原因。
作为一个临时的解决方案,我添加了一些正则表达式(比较节点的新旧版本)来搜索并修复由使用.NET解析XML引入的“差异”。