這是一個非常複雜的問題,超出了我對XSLT的知識 - 我仍在學習,無論我通過O'Reilly的XSLT書閱讀了多少內容,我都處於我的上方頭。XSLT - 重命名節點並刪除空格加更多
我有一個多問題的問題,我已經爲此生成了一個輸入XML文件,並且隨後也會嘗試解釋這些需求。
INPUT
<roottag>
<body>
<header>
<r>
<c>
<d>Header Tag</d><!-- This can include spaces-->
<e>System generated trash</e>
</c>
</r>
<r>
<c>
<d>Sub Header Tag A</d>
<e>System generated trash</e>
</c>
<c>
<d>Sub Header Value A</d>
<e>System generated trash</e>
</c>
</r>
<r>
<c>
<d>Sub Header Tag B</d>
<e>System generated trash</e>
</c>
<c>
<d>Sub Header Value B</d>
<e>System generated trash</e>
</c>
</r>
<r>
<c>
<d>Sub Header Tag C</d>
<e>System generated trash</e>
</c>
<c>
<d>Sub Header Value C</d>
<e>System generated trash</e>
</c>
</r>
</header>
<information>
<r>Body of document</r>
<r>Appears here but have an XSLT that deals with this</r>
</informtaion>
<footer>
<r>
<c>
<d>Footer Tag</d><!-- This can include spaces-->
<e>System generated trash</e>
</c>
</r>
<r>
<c>
<d>Sub Footer Tag A</d>
<e>System generated trash</e>
</c>
<c>
<d>Sub Footer Value A</d>
<e>System generated trash</e>
</c>
</r>
<r>
<c>
<d>Sub Footer Tag B</d>
<e>System generated trash</e>
</c>
<c>
<d>Sub Footer Value B</d>
<e>System generated trash</e>
</c>
</r>
<r>
<c>
<d>Sub Footer Tag C</d>
<e>System generated trash</e>
</c>
<c>
<d>Sub Footer Value C</d>
<e>System generated trash</e>
</c>
</r>
</footer>
</body>
</roottag>
輸出
<?xml version="1.0" encoding="utf-8"?>
<roottag>
<body>
<header>
<HeaderTag>
<!-- without spaces -->
<HeaderName>Header Tag</HeaderName>
<!-- This needs to preserve spaces-->
</HeaderTag>
<SubHeaderTagA>
<!-- without spaces -->
<HeaderName>Sub Header Tag A</HeaderName>
<!-- This needs to preserve spaces-->
<HeaderValue>Sub Header Value A</HeaderValue>
</SubHeaderTagA>
<SubHeaderTagB>
<HeaderName>Sub Header Tag B</HeaderName>
<HeaderValue>Sub Header Value B</HeaderValue>
</SubHeaderTagB>
<SubHeaderTagC>
<HeaderName>Sub Header Tag C</HeaderName>
<HeaderValue>Sub Header Value C</HeaderValue>
</SubHeaderTagC>
</header>
<information>
<r>Body of document</r>
<r>Appears here but have an XSLT that deals with this</r>
</information>
<footer>
<FooterTag>
<FooterName>Footer Tag</FooterName>
</FooterTag>
<SubFooterTagA>
<FooterName>Sub Footer Tag A</FooterName>
<FooterValue>Sub Footer Value A</FooterValue>
</SubFooterTagA>
<SubFooterTagB>
<FooterName>Sub Footer Tag B</FooterName>
<FooterValue>Sub Footer Value B</FooterValue>
</SubFooterTagB>
<SubFooterTagC>
<FooterName>Sub Footer Tag C</FooterName>
<FooterValue>Sub Footer Value C</FooterValue>
</SubFooterTagC>
</footer>
</body>
</roottag>
這樣解釋,因爲我看到它的問題,我所面對的問題。
- RemovingSpaces: roottag /體/頭/ R/C/d內保存的值可以並且經常包含空格,所以我需要刪除此的一種方式,我已經從網站上的問題,發現[addLink]但是,這也會替換值,所以當我在後面的過程中使用數據時,它沒有輸出所需的空格。
- 用第一個值替換R: 我對如何做到這一點感到茫然,我試過並研究過的所有東西似乎都使用第二個值作爲值。我在我的結尾。
頁眉或頁腳名稱/值: 同樣,我的知識是有限的,如果這甚至是可能的,或者每個標籤需要單獨匹配?
運動的頁眉和頁腳標籤: 我沒有我需要的輸出中包含這一點,但我想我可能需要做的 - 這可能移動的標頭標記和頁腳標籤的外身體標籤?所以XML將是:roottag-header-body-information-/body-footer/-/rt
如果您需要更多的說明,請讓我知道。
正在努力! +1好問題.. –
我提供瞭解決方案!我們處理XML的想法可能會有所不同,但輸出將是相同的!首先使用我的XSLT代碼(在第8節中),看看你是否期待輸出!如果是,那麼通過解釋!我盡力讓它變得更簡單! –