0
<?xml version="1.0" encoding="UTF-8" ?>
<BO xmlns="http://hg.com/bo" 
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
             xsi:schemaLocation="http://hg.com/bo http://hg.com/bo.xsd">
<b>Harsh</b>
</BO>

XPathを使用してタグ内に存在するHarshを読み取ろうとしています。

名前空間が存在しない場合は、このjavascript行を使用できます

var path = "/BO/b";
var nodes=xml.evaluate(path, xml, null, XPathResult.ANY_TYPE, null);

ノードbをフェッチできるようにするには、パスにどのような変更を加える必要がありますか?

4

1 に答える 1

0

(デフォルトの) 名前空間で定義された XML コンテンツで XPath 式を使用するには、名前空間プレフィックス マッピングを指定する必要があります。'http://hg.com/bo' 名前空間ですべての 'b' 要素を探していることを XPath 式で指定する何らかの方法が必要です。

あなたの場合、「ex」プレフィックスを使用して、このプレフィックスを「http://hg.com/bo」名前空間 URI にマップできます。これにより、'http://hg.com/bo' 名前空間で宣言されているすべての 'b' 要素を返す必要がある次の XPath 式が生成されます: '//ex:/BO/b'。

于 2012-04-25T10:12:40.970 に答える