.NET XmlWriter中的正确名称空间管理
时间:2020-03-05 18:42:58 来源:igfitidea点击:
我在工作中广泛使用.NET XML技术。我非常喜欢的一件事是XSLT引擎,更确切地说是它的可扩展性。然而,有一点点不停地成为烦恼的源头。没什么大不了的,或者我们不能忍受的东西,但是它阻止了我们产生我们想要产生的漂亮的XML。
我们要做的一件事是内联转换节点并将节点从一个XML文档导入到另一个XML文档。
可悲的是,当我们将节点保存到XmlTextWriter(实际上是XmlWriter.Create(Stream)返回的任何内容)时,无论是否需要(先前定义),名称空间定义都会全部扔到那里。我们得到以下xml的一种:
<root xmlns:abx="http://bladibla"> <abx:child id="A"> <grandchild id="B"> <abx:grandgrandchild xmlns:abx="http://bladibla" /> </grandchild> </abx:child> </root>
是否有人对如何说服.NET有效地命名空间定义提出建议?
谢谢,
波阿斯
PS。另外,我想覆盖默认的名称空间,在编写节点时对其进行更改。
解决方案
回答
这篇文章可能会有所帮助。还要看看XmlTextWriter \ XmlTextReader类的Namespaces属性。