首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用xpath for xml添加元素时,未将对象引用设置为对象的实例

使用xpath for xml添加元素时,未将对象引用设置为对象的实例
EN

Stack Overflow用户
提问于 2012-05-18 14:41:43
回答 2查看 268关注 0票数 4

我有一个xml文件,想要向其中一个节点添加子元素,不知道为什么xpath抛出null异常。这肯定是因为我可能给出了错误的XPath值。这里要添加的xpath元素是什么:

我正在使用的XPath:

代码语言:javascript
运行
复制
//SESSIONANALYSER/KER/MODES/NI/STATEINFORMATION[@TYPE='PREPAID']/INIT/INPUT

下面是我想要添加子元素的地方:

代码语言:javascript
运行
复制
<KER> 
    <MODES>
      <NI>
        <STATEINFORMATION TYPE="PREPAID">
          <INIT INVALIDINPUTRESPONSE="-2">
            <INPUT VALUE="LP6ACTIVATION">
             **<I have to add a child element here>** 

在以下xml中:

代码语言:javascript
运行
复制
<SESSIONANALYSER>
  <AP>
    <MODES>
      <NI>
        <STATEINFORMATION TYPE="PREPAID">
          <INIT INVALIDINPUTRESPONSE="-2">
            <INPUT VALUE="SLN7ACTIVATION">
              <METHOD NAME="CHECKSUBSCRIBERBALANCE" PARAMETERS="SLN7" POSSIBLEACTIONS="FALLOUTON_FAILUREREGION_SETPSOFAILED_FALSE" MAINTAINSESSION="NO" RESPONSE="-4" NEXTLEVEL="" />
              <METHOD NAME="SETPSOINUCIP" PARAMETERS="SLN7" POSSIBLEACTIONS="FALLOUTON_FAILUREREGION_SETPSOFAILED_FALSE" MAINTAINSESSION="NO" RESPONSE="-4" NEXTLEVEL="" />
              <METHOD NAME="SENDMESSAGE" PARAMETERS="" POSSIBLEACTIONS="FALLOUTONSUCCESS" MAINTAINSESSION="NO" RESPONSE="0" NEXTLEVEL="" />
            </INPUT>
            <INPUT VALUE="SLN7DEACTIVATION">
              <METHOD NAME="UNSETPSOINUCIP" PARAMETERS="SLN7" POSSIBLEACTIONS="FALLOUTON_FAILUREREGION_SETPSOFAILED_FALSE" MAINTAINSESSION="NO" RESPONSE="-4" NEXTLEVEL="" />
              <METHOD NAME="jk" PARAMETERS="k" POSSIBLEACTIONS1="k" MAINTAINSESSION="h" RESPONSE="l" NEXTLEVEL=";"></METHOD>
              <METHOD NAME="SENDMESSAGE" PARAMETERS="23" POSSIBLEACTIONS1="FALLOUTONSUCCESS" MAINTAINSESSION="yes" RESPONSE="format" NEXTLEVEL="msdfm"></METHOD>
              <METHOD NAME="payments" PARAMETERS="parametervalue" POSSIBLEACTIONS1="fg,f" MAINTAINSESSION="fdjfg89" RESPONSE="ndfgm" NEXTLEVEL="msdfm"></METHOD>
              <METHOD NAME="payments" PARAMETERS="l" POSSIBLEACTIONS1="l" MAINTAINSESSION="l" RESPONSE="l" NEXTLEVEL="l"></METHOD>
              <METHOD NAME="payments" PARAMETERS="l" POSSIBLEACTIONS1="l" MAINTAINSESSION="l" RESPONSE="l" NEXTLEVEL="l"></METHOD>
              <METHOD NAME="payments" PARAMETERS="k" POSSIBLEACTIONS1="k" MAINTAINSESSION="k" RESPONSE="k" NEXTLEVEL="k"></METHOD>
              <METHOD NAME="payments" PARAMETERS="L" POSSIBLEACTIONS1="L" MAINTAINSESSION="L" RESPONSE="L" NEXTLEVEL="L"></METHOD>
              <METHOD NAME="SENDMESSAGE" PARAMETERS="23" POSSIBLEACTIONS1="FALLOUTONSUCCESS" MAINTAINSESSION="yes" RESPONSE="format" NEXTLEVEL="msdfm"></METHOD>
              <METHOD NAME="payments" PARAMETERS="12" POSSIBLEACTIONS1="FALLOUTONSUCCESS" MAINTAINSESSION="yes" RESPONSE="format" NEXTLEVEL="msvm"></METHOD>
              <METHOD NAME="SENDMESSAGE" PARAMETERS="23" POSSIBLEACTIONS1="FALLOUTONSUCCESS" MAINTAINSESSION="yes" RESPONSE="0" NEXTLEVEL="3"></METHOD>
              <METHOD NAME="SENDMESSAGE" PARAMETERS="23" POSSIBLEACTIONS1="FALLOUTONSUCCESS" MAINTAINSESSION="NO" RESPONSE="format" NEXTLEVEL="3"></METHOD>
            </INPUT>
          </INIT>
          <FAILUREREGION INVALIDINPUTRESPONSE="-2">
            <INPUT VALUE="LOWBALANCE">
              <METHOD NAME="SENDMESSAGE" PARAMETERS="" POSSIBLEACTIONS="FALLOUTONSUCCESS" MAINTAINSESSION="NO" RESPONSE="1" NEXTLEVEL="" />
            </INPUT>
            <INPUT VALUE="SETPSOFAILED">
              <METHOD NAME="SENDMESSAGE" PARAMETERS="" POSSIBLEACTIONS="FALLOUTONSUCCESS" MAINTAINSESSION="NO" RESPONSE="2" NEXTLEVEL="" />
            </INPUT>
            <INPUT VALUE="UCIPDEBIT">
              <METHOD NAME="UNSETPSOINMINSAT" PARAMETERS="SLN7" POSSIBLEACTIONS="FALLOUTON_FAILUREREGION_UNSETPSO_FALSE" MAINTAINSESSION="NO" RESPONSE="-6" NEXTLEVEL="" />
              <METHOD NAME="SENDMESSAGE" PARAMETERS="" POSSIBLEACTIONS="FALLOUTONSUCCESS" MAINTAINSESSION="NO" RESPONSE="3" NEXTLEVEL="" />
            </INPUT>
            <INPUT VALUE="UNSETPSO">
              <METHOD NAME="SENDMESSAGE" PARAMETERS="" POSSIBLEACTIONS="FALLOUTONSUCCESS" MAINTAINSESSION="NO" RESPONSE="4" NEXTLEVEL="" />
            </INPUT>
          </FAILUREREGION>
        </STATEINFORMATION>
        <STATEINFORMATION TYPE="POSTPAID">
          <INIT INVALIDINPUTRESPONSE="-2">
            <INPUT VALUE="SLN7DEACTIVATION">
              <METHOD NAME="SENDMESSAGE" PARAMETERS="" POSSIBLEACTIONS="FALLOUTONSUCCESS" MAINTAINSESSION="NO" RESPONSE="5" NEXTLEVEL="" />
            </INPUT>
          </INIT>
        </STATEINFORMATION>
      </NI>
    </MODES>
  </AP>
  <TN>
    <MODES>
      <NI>
        <STATEINFORMATION TYPE="PREPAID">
          <INIT INVALIDINPUTRESPONSE="-2">
            <INPUT VALUE="LPC16ACTIVATION">
              <METHOD NAME="SETPSOINUCIP" PARAMETERS="LPC16" POSSIBLEACTIONS="FALLOUTON_FAILUREREGION_SETPSOFAILED_FALSE" MAINTAINSESSION="NO" RESPONSE="-4" NEXTLEVEL="" />
              <METHOD NAME="SENDMESSAGE" PARAMETERS="" POSSIBLEACTIONS="FALLOUTONSUCCESS" MAINTAINSESSION="NO" RESPONSE="0" NEXTLEVEL="" />
            </INPUT>
            <INPUT VALUE="LP26ACTIVATION">
              <METHOD NAME="SETPSOINUCIP" PARAMETERS="LP26" POSSIBLEACTIONS="FALLOUTON_FAILUREREGION_SETPSOFAILED_FALSE" MAINTAINSESSION="NO" RESPONSE="-4" NEXTLEVEL="" />
              <METHOD NAME="SENDMESSAGE" PARAMETERS="" POSSIBLEACTIONS="FALLOUTONSUCCESS" MAINTAINSESSION="NO" RESPONSE="0" NEXTLEVEL="" />
            </INPUT>
            <INPUT VALUE="LP49ACTIVATION">
              <METHOD NAME="SETPSOINUCIP" PARAMETERS="LP49" POSSIBLEACTIONS="FALLOUTON_FAILUREREGION_SETPSOFAILED_FALSE" MAINTAINSESSION="NO" RESPONSE="-4" NEXTLEVEL="" />
              <METHOD NAME="SENDMESSAGE" PARAMETERS="" POSSIBLEACTIONS="FALLOUTONSUCCESS" MAINTAINSESSION="NO" RESPONSE="0" NEXTLEVEL="" />
            </INPUT>
            <INPUT VALUE="LPT16ACTIVATION">
              <METHOD NAME="SETPSOINUCIP" PARAMETERS="LPT16" POSSIBLEACTIONS="FALLOUTON_FAILUREREGION_SETPSOFAILED_FALSE" MAINTAINSESSION="NO" RESPONSE="-4" NEXTLEVEL="" />
              <METHOD NAME="SENDMESSAGE" PARAMETERS="" POSSIBLEACTIONS="FALLOUTONSUCCESS" MAINTAINSESSION="NO" RESPONSE="0" NEXTLEVEL="" />
            </INPUT>
            <INPUT VALUE="LP60ACTIVATION">
              <METHOD NAME="SETPSOINUCIP" PARAMETERS="LP60" POSSIBLEACTIONS="FALLOUTON_FAILUREREGION_SETPSOFAILED_FALSE" MAINTAINSESSION="NO" RESPONSE="-4" NEXTLEVEL="" />
              <METHOD NAME="SENDMESSAGE" PARAMETERS="" POSSIBLEACTIONS="FALLOUTONSUCCESS" MAINTAINSESSION="NO" RESPONSE="0" NEXTLEVEL="" />
            </INPUT>
            <INPUT VALUE="LPC16DEACTIVATION">
              <METHOD NAME="UNSETPSOINUCIP" PARAMETERS="LPC16" POSSIBLEACTIONS="FALLOUTON_FAILUREREGION_SETPSOFAILED_FALSE" MAINTAINSESSION="NO" RESPONSE="-4" NEXTLEVEL="" />
              <METHOD NAME="SENDMESSAGE" PARAMETERS="" POSSIBLEACTIONS="FALLOUTONSUCCESS" MAINTAINSESSION="NO" RESPONSE="0" NEXTLEVEL="" />
            </INPUT>
            <INPUT VALUE="LP26DEACTIVATION">
              <METHOD NAME="UNSETPSOINUCIP" PARAMETERS="LP26" POSSIBLEACTIONS="FALLOUTON_FAILUREREGION_SETPSOFAILED_FALSE" MAINTAINSESSION="NO" RESPONSE="-4" NEXTLEVEL="" />
              <!--<METHOD NAME="SENDMESSAGE" PARAMETERS="" POSSIBLEACTIONS="FALLOUTONSUCCESS" MAINTAINSESSION="NO" RESPONSE="0" NEXTLEVEL="" />-->
            </INPUT>
            <INPUT VALUE="LP49DEACTIVATION">
              <METHOD NAME="UNSETPSOINUCIP" PARAMETERS="LP49" POSSIBLEACTIONS="FALLOUTON_FAILUREREGION_SETPSOFAILED_FALSE" MAINTAINSESSION="NO" RESPONSE="-4" NEXTLEVEL="" />
              <METHOD NAME="SENDMESSAGE" PARAMETERS="" POSSIBLEACTIONS="FALLOUTONSUCCESS" MAINTAINSESSION="NO" RESPONSE="0" NEXTLEVEL="" />
            </INPUT>
            <INPUT VALUE="LPT16DEACTIVATION">
              <METHOD NAME="UNSETPSOINUCIP" PARAMETERS="LPT16" POSSIBLEACTIONS="FALLOUTON_FAILUREREGION_SETPSOFAILED_FALSE" MAINTAINSESSION="NO" RESPONSE="-4" NEXTLEVEL="" />
              <METHOD NAME="SENDMESSAGE" PARAMETERS="" POSSIBLEACTIONS="FALLOUTONSUCCESS" MAINTAINSESSION="NO" RESPONSE="0" NEXTLEVEL="" />
            </INPUT>
            <INPUT VALUE="LP60DEACTIVATION">
              <METHOD NAME="UNSETPSOINUCIP" PARAMETERS="LP60" POSSIBLEACTIONS="FALLOUTON_FAILUREREGION_SETPSOFAILED_FALSE" MAINTAINSESSION="NO" RESPONSE="-4" NEXTLEVEL="" />
              <METHOD NAME="SENDMESSAGE" PARAMETERS="" POSSIBLEACTIONS="FALLOUTONSUCCESS" MAINTAINSESSION="NO" RESPONSE="0" NEXTLEVEL="" />
            </INPUT>
          </INIT>
          <FAILUREREGION INVALIDINPUTRESPONSE="-2">
            <INPUT VALUE="LOWBALANCE">
              <METHOD NAME="SENDMESSAGE" PARAMETERS="" POSSIBLEACTIONS="FALLOUTONSUCCESS" MAINTAINSESSION="NO" RESPONSE="1" NEXTLEVEL="" />
            </INPUT>
            <INPUT VALUE="SETPSOFAILED">
              <METHOD NAME="SENDMESSAGE" PARAMETERS="" POSSIBLEACTIONS="FALLOUTONSUCCESS" MAINTAINSESSION="NO" RESPONSE="2" NEXTLEVEL="" />
            </INPUT>
            <INPUT VALUE="UCIPDEBIT">
              <METHOD NAME="UNSETPSOINMINSAT" PARAMETERS="SLN7" POSSIBLEACTIONS="FALLOUTON_FAILUREREGION_UNSETPSO_FALSE" MAINTAINSESSION="NO" RESPONSE="-6" NEXTLEVEL="" />
              <METHOD NAME="SENDMESSAGE" PARAMETERS="" POSSIBLEACTIONS="FALLOUTONSUCCESS" MAINTAINSESSION="NO" RESPONSE="3" NEXTLEVEL="" />
            </INPUT>
            <INPUT VALUE="UNSETPSO">
              <METHOD NAME="SENDMESSAGE" PARAMETERS="" POSSIBLEACTIONS="FALLOUTONSUCCESS" MAINTAINSESSION="NO" RESPONSE="4" NEXTLEVEL="" />
            </INPUT>
          </FAILUREREGION>
        </STATEINFORMATION>
        <STATEINFORMATION TYPE="POSTPAID">
          <INIT INVALIDINPUTRESPONSE="-2">
            <INPUT VALUE="">
              <METHOD NAME="SENDMESSAGE" PARAMETERS="" POSSIBLEACTIONS="FALLOUTONSUCCESS" MAINTAINSESSION="NO" RESPONSE="5" NEXTLEVEL="" />
            </INPUT>
          </INIT>
        </STATEINFORMATION>
      </NI>
    </MODES>
  </TN>
  <KER>
    <MODES>
      <NI>
        <STATEINFORMATION TYPE="PREPAID">
          <INIT INVALIDINPUTRESPONSE="-2">
            <INPUT VALUE="LP6ACTIVATION">
              <METHOD NAME="SETPSOINUCIP" PARAMETERS="LP6" POSSIBLEACTIONS="FALLOUTON_FAILUREREGION_SETPSOFAILED_FALSE" MAINTAINSESSION="NO" RESPONSE="-4" NEXTLEVEL="" />
              <METHOD NAME="SENDMESSAGE" PARAMETERS="" POSSIBLEACTIONS="FALLOUTONSUCCESS" MAINTAINSESSION="NO" RESPONSE="0" NEXTLEVEL="" />
            </INPUT>
            <INPUT VALUE="LPSP15ACTIVATION">
              <METHOD NAME="SETPSOINUCIP" PARAMETERS="LPSP15" POSSIBLEACTIONS="FALLOUTON_FAILUREREGION_SETPSOFAILED_FALSE" MAINTAINSESSION="NO" RESPONSE="-4" NEXTLEVEL="" />
              <METHOD NAME="SENDMESSAGE" PARAMETERS="" POSSIBLEACTIONS="FALLOUTONSUCCESS" MAINTAINSESSION="NO" RESPONSE="0" NEXTLEVEL="" />
            </INPUT>
            <INPUT VALUE="LP6DEACTIVATION">
              <METHOD NAME="UNSETPSOINUCIP" PARAMETERS="LP6" POSSIBLEACTIONS="FALLOUTON_FAILUREREGION_SETPSOFAILED_FALSE" MAINTAINSESSION="NO" RESPONSE="-4" NEXTLEVEL="" />
              <METHOD NAME="SENDMESSAGE" PARAMETERS="" POSSIBLEACTIONS="FALLOUTONSUCCESS" MAINTAINSESSION="NO" RESPONSE="0" NEXTLEVEL="" />
            </INPUT>
            <INPUT VALUE="LPSP15DEACTIVATION">
              <METHOD NAME="UNSETPSOINUCIP" PARAMETERS="LPSP15" POSSIBLEACTIONS="FALLOUTON_FAILUREREGION_SETPSOFAILED_FALSE" MAINTAINSESSION="NO" RESPONSE="-4" NEXTLEVEL="" />
              <METHOD NAME="SENDMESSAGE" PARAMETERS="" POSSIBLEACTIONS="FALLOUTONSUCCESS" MAINTAINSESSION="NO" RESPONSE="0" NEXTLEVEL="" />
            </INPUT>
            <INPUT VALUE="LP6SUBSCRIPTION">
              <METHOD NAME="CHECKSUBSCRIBERBALANCE" PARAMETERS="LP6" POSSIBLEACTIONS="FALLOUTON_FAILUREREGION_LOWBALANCE_INSUFFICIENTBALANCE" MAINTAINSESSION="NO" RESPONSE="-3" NEXTLEVEL="" />
              <METHOD NAME="SETPSOINUCIP" PARAMETERS="LP6" POSSIBLEACTIONS="FALLOUTON_FAILUREREGION_SETPSOFAILED_FALSE" MAINTAINSESSION="NO" RESPONSE="-4" NEXTLEVEL="" />
              <METHOD NAME="FIREUCIPDEBIT" PARAMETERS="LP6" POSSIBLEACTIONS="FALLOUTON_FAILUREREGION_CHARGINGFAILED_FALSE" MAINTAINSESSION="NO" RESPONSE="-4" NEXTLEVEL="" />
              <METHOD NAME="SENDMESSAGE" PARAMETERS="" POSSIBLEACTIONS="FALLOUTONSUCCESS" MAINTAINSESSION="NO" RESPONSE="0" NEXTLEVEL="" />
            </INPUT>
          </INIT>
          <FAILUREREGION INVALIDINPUTRESPONSE="-2">
            <INPUT VALUE="LOWBALANCE">
              <METHOD NAME="SENDMESSAGE" PARAMETERS="" POSSIBLEACTIONS="FALLOUTONSUCCESS" MAINTAINSESSION="NO" RESPONSE="1" NEXTLEVEL="" />
            </INPUT>
            <INPUT VALUE="CHARGINGFAILED">
              <METHOD NAME="UNSETPSOINUCIP" PARAMETERS="LP6" POSSIBLEACTIONS="FALLOUTON_FAILUREREGION_SETPSOFAILED_FALSE" MAINTAINSESSION="NO" RESPONSE="-4" NEXTLEVEL="" />
              <METHOD NAME="SENDMESSAGE" PARAMETERS="" POSSIBLEACTIONS="FALLOUTONSUCCESS" MAINTAINSESSION="NO" RESPONSE="6" NEXTLEVEL="" />
            </INPUT>
            <INPUT VALUE="SETPSOFAILED">
              <METHOD NAME="SENDMESSAGE" PARAMETERS="" POSSIBLEACTIONS="FALLOUTONSUCCESS" MAINTAINSESSION="NO" RESPONSE="2" NEXTLEVEL="" />
            </INPUT>
            <INPUT VALUE="UCIPDEBIT">
              <METHOD NAME="UNSETPSOINMINSAT" PARAMETERS="SLN7" POSSIBLEACTIONS="FALLOUTON_FAILUREREGION_UNSETPSO_FALSE" MAINTAINSESSION="NO" RESPONSE="-6" NEXTLEVEL="" />
              <METHOD NAME="SENDMESSAGE" PARAMETERS="" POSSIBLEACTIONS="FALLOUTONSUCCESS" MAINTAINSESSION="NO" RESPONSE="3" NEXTLEVEL="" />
            </INPUT>
            <INPUT VALUE="UNSETPSO">
              <METHOD NAME="SENDMESSAGE" PARAMETERS="" POSSIBLEACTIONS="FALLOUTONSUCCESS" MAINTAINSESSION="NO" RESPONSE="4" NEXTLEVEL="" />
            </INPUT>
          </FAILUREREGION>
        </STATEINFORMATION>
        <STATEINFORMATION TYPE="POSTPAID">
          <INIT INVALIDINPUTRESPONSE="-2">
            <INPUT VALUE="">
              <METHOD NAME="SENDMESSAGE" PARAMETERS="" POSSIBLEACTIONS="FALLOUTONSUCCESS" MAINTAINSESSION="NO" RESPONSE="5" NEXTLEVEL="" />
            </INPUT>
          </INIT>
        </STATEINFORMATION>
      </NI>
    </MODES>
  </KER>
</SESSIONANALYSER>
EN

Stack Overflow用户

发布于 2012-05-18 17:20:41

我不知道为什么您的xpath中有BH

这个xpath查询只从示例中选择了一个元素,我认为它就是您想要的元素:

代码语言:javascript
运行
复制
/SESSIONANALYSER/KER/MODES/NI/STATEINFORMATION[@TYPE='PREPAID']
    /INIT[@INVALIDINPUTRESPONSE='-2']
    /INPUT[@VALUE='LP6ACTIVATION']
票数 1
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10647904

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档