3

xml ファイルは次のようになります。

<products>
  <product>
   <id>1</id>
   <name>pen</name>
  </product>
  <product>
   <id>2</id>
   <name>pencil</name>
  </product>
</products>
<employees>
  <employee>
   <name>Jack</name>
  <employee>
  <employee>
   <name>Mark</name>
  <employee>
</employees>

<name>の子であるノードのみを取得できます<product>か? xpathjavascript domに適切に適合した API はあります か?

4

3 に答える 3

4

querySelector最近のブラウザでは、xmlツリーをトラバースするために使用できます。xmlが内div#xmlsampleにあるとすると、このコードは次のノードリストを提供//product/nameprodNamesます。

var xmlDoc = (new DOMParser())
              .parseFromString(document.querySelector('#xmlsample').innerHTML,
              "application/xml"),
    prodNames = xmlDoc.querySelectorAll('product name');

このjsfiddleを参照してください

于 2012-08-20T06:58:08.373 に答える
3

jQuery には、 xml を解析およびトラバースするための API があります。

var xmlObj = $.parseXML(xmlObj);

var nameNodes = xmlObj.find('product > name');

ドキュメントから..

jQuery.parseXML は、ブラウザーのネイティブ解析機能を使用して、有効な XML ドキュメントを作成します。次に、このドキュメントを jQuery に渡して、走査および操作できる一般的な jQuery オブジェクトを作成できます。

于 2012-08-20T05:21:35.333 に答える
1

<name>の子であるノードのみを取得できます<product>か?

提供された XML は整形式の XML ドキュメントではありません (最上位の要素が 1 つ必要です)。

また、2 つの<employee>開始タグには対応する終了タグがありません</employee>

正しい XML ドキュメントが次の場合:

<company>
    <products>
        <product>
            <id>1</id>
            <name>pen</name>
        </product>
        <product>
            <id>2</id>
            <name>pencil</name>
        </product>
    </products>
    <employees>
        <employee>
            <name>Jack</name>
        </employee>
        <employee>
            <name>Mark</name>
        </employee>
    </employees>
</company>

XPath 式が本当に必要な場合、必要な要素を選択する 1 つの XPath 式は次のとおりです。

/*/products/product/name

これにより、XML ドキュメントの最上位要素の子である任意の要素の子である任意の要素のname子である任意の要素が選択されます。productproducts

于 2012-08-20T12:39:32.717 に答える