我正在尝试使用一些代码来扫描模板以获取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