あなたのパッチワークはうまくいきましたが..名前空間に関する知識を提供したいと思います!
XMLのw:
は、実際には名前空間プレフィックスと呼ばれます。また、neamespace プレフィックスを使用するには、ルート ノードで宣言する必要があります。1+
ソースXMLに宣言部分が欠落していたため! パーサーがエラーをスローしていました! 以下は、XML で名前空間を定義する方法です。私はあなた自身の XML を修正しました。今はエラーになることはないと思います!
<w:r xmlns:w="http://www.w3.org/SomeNamespace">
<w:rPr>
<w:rStyle w:val="jid"/>
</w:rPr>
<w:t>AN</w:t>
</w:r>
追加情報:
名前空間には独自のスコープがあります。以下の例では:
<root>
<w:r xmlns:w="http://www.w3.org/SomeNamespace">
<w:rPr>
<w:rStyle w:val="jid"/>
</w:rPr>
<w:t>AN</w:t>
</w:r>
<someotherElement>
<dummychild/>
</someotherElement>
<someotherElement>
上記の例では、名前空間プレフィックスをor <dummychild/>
!!に使用することはできません。名前空間プレフィックス w のスコープは、要素<r>
とその子 (孫) までのみであるためです。
1+: 名前空間が宣言されている要素.. 名前空間は、それ自体とその子ノードに対して有効になります.. ルートの下で名前空間を宣言すると、XML ドキュメント内のすべての要素に対して名前空間が有効/利用可能になります。