У меня есть XML-документ, который я пытаюсь реорганизовать и переформатировать. Я пытался использовать инструмент рефакторинга кислорода, чтобы обернуть определенные элементы или группу элементов. Но вместо того, чтобы группировать нужные элементы вместе, он просто оборачивает каждый соответствующий элемент по отдельности. Как мне написать выражение XPath, которое нацеливает и группирует элементы следующим образом:
Использование инструмента Wrap Element для объединения первых 3 элементов фрагмента в элемент s.
Исходя из этого:
<system>
<n>1057</n>
<chunk>X1</chunk>
<chunk>C6HF5</chunk>
<chunk>Pentafluorbenzol</chunk>
<chunk>C6H2F41,2,3,5-Tetrafluorbenzol</chunk>
<chunk>Äquimolare Mischung: </chunk>
<chunk/>
<r>[F5]</r>
<c>25°C</c>
<chunk>ΔHM = 1,84 cal/mol Misch. = 7,7 J/mol Misch.</chunk>
К этому:
<system>
<n>1057</n>
<s><chunk>X1</chunk>
<chunk>C6HF5</chunk>
<chunk>Pentafluorbenzol</chunk></s>
<chunk>C6H2F41,2,3,5-Tetrafluorbenzol</chunk>
<chunk>Äquimolare Mischung: </chunk>
<chunk/>
<r>[F5]</r>
<c>25°C</c>
<chunk>ΔHM = 1,84 cal/mol Misch. = 7,7 J/mol Misch.</chunk>
Using the the XPath expression: /systems/system/chunk[position()<4] to select the first 3 chunk elements and enclose them with s tags. However when I run this in the refactoring command I get this:
<system>
<n>1057</n>
<s><chunk>X1</chunk></s>
<s><chunk>C6HF5</chunk></s>
<s><chunk>Pentafluorbenzol</chunk></s>
<chunk>C6H2F41,2,3,5-Tetrafluorbenzol</chunk>
<chunk>Äquimolare Mischung: </chunk>
<chunk/>
<r>[F5]</r>
<c>25°C</c>
<chunk>ΔHM = 1,84 cal/mol Misch. = 7,7 J/mol Misch.</chunk>
Where it selects the proper chunks, but wraps each chunk individually. Please let me know if you have any suggestions on how to group all elements together in s tags. Or if I shouldn't even be using oxygen xml to accomplish this.
<xsl:mode on-no-match="shallow-copy"/><xsl:template match="system/chunk[1]"><s><xsl:copy-of select="., following-sibling::chunk[position() lt 3]"/></s></xsl:template><xsl:template match="system/chunk[2] | system/chunk[3]"/>
для выполнения этого преобразования. - person Martin Honnen   schedule 02.08.2017