基于XpathNavigator当前位置的Xpath查找

时间:2017-05-26 15:11:45

标签: .net xpath

我正在尝试使用一些代码来扫描模板以获取XPath表达式,并用结果替换Xpath。其中大部分都相当简单,但我遇到一个问题,即获取一个xpath表达式,该表达式根据当前上下文的不同值查找值。

我的代码的简化版本;

<FolioInfo>
    <TrxInfo>
      <Description>Desc 2</Description>
      <Code>1</Code>
    </TrxInfo>
    <TrxInfo>
      <Description>Desc 1</Description>
      <Code>2</Code>
    </TrxInfo>
    <Postings>
      <TrxDate>2016-09-19</TrxDate>
      <TranActionId>123</TranActionId>
      <Quantity>1</Quantity>
      <NetAmount>25</NetAmount>
      <TrxCode>1</TrxCode>
    </Postings> 
    <Postings>
      <TrxDate>2016-09-20</TrxDate>
      <TranActionId>321</TranActionId>
      <Quantity>2</Quantity>
      <NetAmount>30</NetAmount>
      <TrxCode>2</TrxCode>
    </Postings>     
</FolioInfo>

“// TrxInfo [Code = TrxCode] / Description”的表达式是我遇到问题的表达式。我可以用“// TrxInfo [Code = 1] / Description”或“// TrxInfo [Code = // FolioInfo / Postings [1] / TrxCode] / Description”替换它,它会起作用,但我无法得到它识别当前上下文只使用元素名称。

我还尝试了“Code = .TrxCode”,文档建议应该这样做,但没有乐趣。

对于后台,我们的想法是用户可以根据自己的喜好配置显示作品集发布的模板。有过滤Postings列表的功能,所以我无法使用position()使用For循环遍历所有Postings。

简化XML

SOIL_save_image

0 个答案:

没有答案