昨日からこれで悩んでいます。次のような 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 の最初と 2 番目の URI を使用する場合と使用しない場合、xmlns の代わりに xsi を使用して新しい名前空間を追加するなど、いくつか試しました。msdn Web サイトを何度か読みましたが、わかりません。私は何を間違っていますか?
追加する必要があるのは、次の特定の行です。
<TakeDown>true</TakeDown>
ノード間で、1 つは Usage と呼ばれ、もう 1 つは Territory と呼ばれます。
今までありがとう バイバイ ゴンザロ
編集: いくつかの使用法タグと地域タグがあることを忘れていました。それらすべての間に同じ行を追加する必要があります。これは問題に関連していますか?.