从昨天开始,我一直在努力解决这个问题。我有一个这样的 XML 文件(片段):
<?xml version="1.0" encoding="UTF-8"?>
<ern:NewReleaseMessage xmlns:ern="url-1" xmlns:xsi="url-2" xsi:schemaLocation="url-1-again url-1-again/ern-main.xsd" MessageSchemaVersionId="2010/ernm/32" LanguageAndScriptCode="en">
<MessageHeader>
...
...
我已经设法通过使用 XmlNamespaceManager 删除了一些东西,一切都很好。当我尝试插入一行代码时,我这样做:
Dim navigator As XPathNavigator = XmlDoc.CreateNavigator()
navigator.MoveToChild("ern:NewReleaseMessage", "url-1")
navigator.MoveToChild("ern:DealList", "url-1")
navigator.MoveToChild("ern:ReleaseDeal", "url-1")
navigator.MoveToChild("ern:Deal", "url-1")
navigator.MoveToChild("ern:DealTerms", "url-1")
navigator.MoveToChild("ern:Usage", "url-1")
navigator.InsertElementAfter(navigator.Prefix, "TakeDown", navigator.LookupNamespace(navigator.Prefix), "true")
'navigator.InsertAfter("<TakeDown>true</TakeDown>")
我总是遇到同样的错误:
无效的操作异常。由于探测器的实际位置,操作无效。
我已经尝试了几件事,比如不使用 NameSpaceManager,使用 InsertAfter、InsertBefore、InsertElementAfter、InsertElementBefore,在 navigator.MoveToChild 上有和没有第一个和第二个 URI,使用 xsi 而不是 xmlns 添加新的命名空间。我已经阅读了几次 msdn 网站,但我无法弄清楚。我究竟做错了什么?
我需要添加的是这个特定的行:
<TakeDown>true</TakeDown>
到节点之间,一个叫做Usage,另一个叫做Territory。
谢谢,从现在开始再见,贡萨洛
编辑:忘了说有几个用法和领土标签,我需要在所有标签之间添加同一行,这与问题有关吗?