0

xhtml / xml ファイルからいくつかのノード名を取得するために xpath を使用しています。

私は現在、このxpathを持っています: /xhtml:html/xhtml:head/xforms:model/xforms:instance/form/*[starts-with(local-name(), 'section')]

これにより、次のような名前のノードが取得されます: section-1_s1_partners section-2-s2_strategy

上記の xpath の結果は一致したノードですが、完全なノード名に一致するたびに取得したいと考えています。Thenのような name() 関数を使用する name(/xhtml:html/xhtml:head/xforms:model/xforms:instance/form/*[starts-with(local-name(), 'section')]) と、最初の一致のみが返され、それ以外の方法はわかりません..

素晴らしいアイデアはありますか??

ありがとう!

(xhtml/xml: )

<xhtml:html ....>
 <xhtml:head>
     <xhtml:title>ASD-1</xhtml:title>
    <xforms:model id="fr-form-model">
        <xforms:instance id="fr-form-instance">
            <form>
                <section-1_s1_partners>
                    <control-304/>
                    <toggleForm>ASD</toggleForm>
                    <applicationid/>
                    <section-345>
                        <s1_kbPaAAr/>
                        <s1_kbDCCent/>
                        <s1_kbRAE/>
                    </section-345>
                    <section-s1_depDDFentGFress>
                        <address_search/>
                        <address_postcode/>
                        <address_address1/>
                        <address_address2/>
                        <address_address3/>
                        <address_city/>
                    </section-s1_departmentAddress>
                    <section-344>
                        <s1_companyPartner/>
                        <s1_companyRegistrationNumber/>
                        <s1_companyType/>
                        <s1_companySize/>
                    </section-344>
                    <section-s1_companyAddress>
                        <address_search/>
                        <address_postcode/>
                        <address_address1/>
                        <address_address2/>
                        <address_address3/>
                        <address_city/>
                    </section-s1_companyAddress>
                    <section-324>
                        <s1_plannedDate/>
                        <s1_workDescription/>
                        <s1_publicDescription/>
                        <s1_numberOfAssociates>1</s1_numberOfAssociates>
                        <s1_duration/>
                        <s1b_resubmissionYesNo/>
                        <s1_GAAGrogramNumber/>
                    </section-324>
                </section-1_s1_partners>
                <section-2-s2_strategy>
                    <control-4/>
                    <s2_memo_strategic/>
                    <s2_memo_problems/>
                    <s2_companyPosition/>
                    <s2_companyContribution/>
                    <s2_lackExpertise/>
                    <s2_essential/>
                    <s2_companySponsor/>
                    <s2_seekKnowledge/>
                    <s2_challenge/>
                </section-2-s2_strategy>
4

1 に答える 1

0

このname関数には 1 つの引数が必要です。ノード リストを受け取ることはできません。使用している言語でノードリストを反復処理する必要があります。たとえば、xsh では次のようになります。

for /xhtml:html/xhtml:head/xforms:model/xforms:instance/form/*[starts-with(local-name(), 'section')] 
    echo name()
于 2013-05-02T08:15:30.427 に答える