【发布时间】:2015-07-21 16:36:34
【问题描述】:
我有一些具有以下平面结构的 XML 文件:
<managedObject class="MGW" version="U5.0EP2" distName="PLMN-PLMN/MGW-219454" id="192614000001726941">
<list name="mgwOptions">
<p>M3UA Interface (No 50035)</p>
</list>
<p name="name">MGW_A</p>
</managedObject>
<managedObject class="ATM" version="U5.0EP2" distName="PLMN-PLMN/MGW-219454/ATM-1" id="192614000003145148">
<p name="lastSuccessfulUploadTimeStamp">21/07/15 01:32:40</p>
</managedObject>
<managedObject class="IFPG" version="A10TOP" distName="PLMN-PLMN/MGW-219454/ATM-1/IFPG-0" id="192614000003415034">
<p name="prSectionSdhExchangeTerminalIndex">1</p>
<p name="protectionSwitchingMode">REV</p>
<p name="protocolVariant">MSP</p>
<p name="switchingDirection">WO</p>
<p name="waitToRestoreTime">300</p>
<p name="woSectionSdhExchangeTerminalIndex">0</p>
</managedObject>
<managedObject class="IFPG" version="A10TOP" distName="PLMN-PLMN/MGW-219454/ATM-1/IFPG-1" id="192614000003415035">
<p name="prSectionSdhExchangeTerminalIndex">3</p>
<p name="protectionSwitchingMode">REV</p>
<p name="protocolVariant">MSP</p>
<p name="switchingDirection">WO</p>
<p name="waitToRestoreTime">300</p>
<p name="woSectionSdhExchangeTerminalIndex">2</p>
</managedObject>
我想根据 managedObjects 元素的 distName 和 class 属性使用 XSL 将其转换为更树状的结构。比如:
<?xml version="1.0"?>
<managedObject class="MGW" version="U5.0EP2" distName="PLMN-PLMN/MGW-219454" id="192614000001726941">
<list name="mgwOptions">
<p>M3UA Interface (No 50035)</p>
</list>
<p name="name">MGW_A</p>
<managedObject class="ATM" version="U5.0EP2" distName="PLMN-PLMN/MGW-219454/ATM-1" id="192614000003145148">
<p name="lastSuccessfulUploadTimeStamp">21/07/15 01:32:40</p>
<managedObject class="IFPG" version="A10TOP" distName="PLMN-PLMN/MGW-219454/ATM-1/IFPG-0" id="192614000003415034">
<p name="prSectionSdhExchangeTerminalIndex">1</p>
<p name="protectionSwitchingMode">REV</p>
<p name="protocolVariant">MSP</p>
<p name="switchingDirection">WO</p>
<p name="waitToRestoreTime">300</p>
<p name="woSectionSdhExchangeTerminalIndex">0</p>
</managedObject>
<managedObject class="IFPG" version="A10TOP" distName="PLMN-PLMN/MGW-219454/ATM-1/IFPG-1" id="192614000003415035">
<p name="prSectionSdhExchangeTerminalIndex">3</p>
<p name="protectionSwitchingMode">REV</p>
<p name="protocolVariant">MSP</p>
<p name="switchingDirection">WO</p>
<p name="waitToRestoreTime">300</p>
<p name="woSectionSdhExchangeTerminalIndex">2</p>
</managedObject>
</managedObject>
</managedObject>
这样的通用且简单的问题可以解决吗?我的文件包含大约 100,000 个托管对象,它们具有不同的类和不同的 distName 路径。
【问题讨论】:
-
你能使用像 Saxon 9 这样的 XSLT 2.0 处理器吗?
-
我可能不得不在我们的系统管理员那里争取它,但是是的。
-
如果您无法升级到 XSLT 2.0,您使用的是哪个 XSLT 1.0 处理器?