Xml 如何使用XSLT将标记的值转换为纯文本
您好,这是XML(下面的副本),我必须从中提取元素中的字符串并将其附加到纯文本中。我需要提取的数据是此标记中的字符串:Xml 如何使用XSLT将标记的值转换为纯文本,xml,xslt,Xml,Xslt,您好,这是XML(下面的副本),我必须从中提取元素中的字符串并将其附加到纯文本中。我需要提取的数据是此标记中的字符串: <XPD:ATTR name="Name" type="string">Bae, Rankyoung1</XPD:ATTR> 我希望输出文档如下所示: Bae, Rankyoung1 Jung, Yoontae 我是XML XSLT转换的新手。 你能帮我创建XSLT文件吗 编辑,以供将来参考,以下是输入XML的副本: <?xml version
<XPD:ATTR name="Name" type="string">Bae, Rankyoung1</XPD:ATTR>
我希望输出文档如下所示:
Bae, Rankyoung1
Jung, Yoontae
我是XML XSLT转换的新手。
你能帮我创建XSLT文件吗
编辑,以供将来参考,以下是输入XML的副本:
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="XSL_example.xsl"?> <!-- RMRD -->
<XPD:PROJECT xmlns:XPD="http://www.staruml.com" version="1">
<XPD:HEADER>
<XPD:SUBUNITS/>
<XPD:PROFILES/>
</XPD:HEADER>
<XPD:BODY>
<XPD:OBJ name="DocumentElement" type="UMLProject" guid="XuQeQOs7pUqu5iNMXzIipQAA">
<XPD:ATTR name="Title" type="string">Untitled</XPD:ATTR>
<XPD:ATTR name="#OwnedElements" type="integer">1</XPD:ATTR>
<XPD:OBJ name="OwnedElements[0]" type="UMLPackage" guid="J9e+bcLT8UWj0V0+3CBnEQAA">
<XPD:ATTR name="Name" type="string">Package1</XPD:ATTR>
<XPD:REF name="Namespace">XuQeQOs7pUqu5iNMXzIipQAA</XPD:REF>
<XPD:ATTR name="#OwnedDiagrams" type="integer">1</XPD:ATTR>
<XPD:OBJ name="OwnedDiagrams[0]" type="UMLClassDiagram" guid="pzzwsHWd/0Czibg1/CI/HgAA">
<XPD:ATTR name="Name" type="string">ClassDiagram1</XPD:ATTR>
<XPD:REF name="DiagramOwner">J9e+bcLT8UWj0V0+3CBnEQAA</XPD:REF>
<XPD:OBJ name="DiagramView" type="UMLClassDiagramView" guid="57OItj9oa0ydbjXPOUGk8QAA">
<XPD:REF name="Diagram">pzzwsHWd/0Czibg1/CI/HgAA</XPD:REF>
<XPD:ATTR name="#OwnedViews" type="integer">2</XPD:ATTR>
<XPD:OBJ name="OwnedViews[0]" type="UMLClassView" guid="KhrtWhesJES940zMm2hLeAAA">
<XPD:ATTR name="LineColor" type="string">clMaroon</XPD:ATTR>
<XPD:ATTR name="FillColor" type="string">$00B9FFFF</XPD:ATTR>
<XPD:ATTR name="Left" type="integer">596</XPD:ATTR>
<XPD:ATTR name="Top" type="integer">120</XPD:ATTR>
<XPD:ATTR name="Width" type="integer">108</XPD:ATTR>
<XPD:ATTR name="Height" type="integer">43</XPD:ATTR>
<XPD:REF name="Model">iw3rcr37H0q7LUsnJ1pOKgAA</XPD:REF>
<XPD:OBJ name="NameCompartment" type="UMLNameCompartmentView" guid="yxCuVE2uHUWJoVlcgrNI1QAA">
<XPD:OBJ name="NameLabel" type="LabelView" guid="LeQVjq8jY0mAgcW4FGjR/gAA">
<XPD:ATTR name="FontStyle" type="integer">1</XPD:ATTR>
<XPD:ATTR name="Text" type="string">Bae, Rankyoung1</XPD:ATTR>
</XPD:OBJ>
<XPD:OBJ name="StereotypeLabel" type="LabelView" guid="0fDlWFOPRUOyIROG9pCBXQAA">
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
</XPD:OBJ>
<XPD:OBJ name="PropertyLabel" type="LabelView" guid="HHOXIA2NX0qAIcuib8OmDwAA">
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="AttributeCompartment" type="UMLAttributeCompartmentView" guid="rsTdbVSS0UCho8yd1rZVDgAA">
<XPD:REF name="Model">iw3rcr37H0q7LUsnJ1pOKgAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="OperationCompartment" type="UMLOperationCompartmentView" guid="jk1MzMH9g02eNnXGdAfgkAAA">
<XPD:REF name="Model">iw3rcr37H0q7LUsnJ1pOKgAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="TemplateParameterCompartment" type="UMLTemplateParameterCompartmentView" guid="uBpN+trdlE2kUjLuESmL4gAA">
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
<XPD:REF name="Model">iw3rcr37H0q7LUsnJ1pOKgAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="OwnedViews[1]" type="UMLClassView" guid="qt8J5Puh40i6LWsBhcDi5wAA">
<XPD:ATTR name="LineColor" type="string">clMaroon</XPD:ATTR>
<XPD:ATTR name="FillColor" type="string">$00B9FFFF</XPD:ATTR>
<XPD:ATTR name="Left" type="integer">592</XPD:ATTR>
<XPD:ATTR name="Top" type="integer">184</XPD:ATTR>
<XPD:ATTR name="Width" type="integer">90</XPD:ATTR>
<XPD:ATTR name="Height" type="integer">43</XPD:ATTR>
<XPD:REF name="Model">9zUnZZRwUkalv3A3uj6OkwAA</XPD:REF>
<XPD:OBJ name="NameCompartment" type="UMLNameCompartmentView" guid="tBTjG3c61EKTbuMvBTPvuAAA">
<XPD:OBJ name="NameLabel" type="LabelView" guid="/MxPkci6uEiPYGh3lLpBdAAA">
<XPD:ATTR name="FontStyle" type="integer">1</XPD:ATTR>
<XPD:ATTR name="Text" type="string">Jung, Yoontae</XPD:ATTR>
</XPD:OBJ>
<XPD:OBJ name="StereotypeLabel" type="LabelView" guid="f3Q59HwThUOqGZOX11HOKAAA">
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
</XPD:OBJ>
<XPD:OBJ name="PropertyLabel" type="LabelView" guid="b/yOcqoLUEmVjPBTE+R8mQAA">
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="AttributeCompartment" type="UMLAttributeCompartmentView" guid="jxiEXdW7P0irEuL7UpZBgQAA">
<XPD:REF name="Model">9zUnZZRwUkalv3A3uj6OkwAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="OperationCompartment" type="UMLOperationCompartmentView" guid="W0p9UA3RFEGPMLpTCCcmUgAA">
<XPD:REF name="Model">9zUnZZRwUkalv3A3uj6OkwAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="TemplateParameterCompartment" type="UMLTemplateParameterCompartmentView" guid="TyOXV+wPyUqj9WLOySoADAAA">
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
<XPD:REF name="Model">9zUnZZRwUkalv3A3uj6OkwAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
</XPD:OBJ>
</XPD:OBJ>
<XPD:ATTR name="#OwnedElements" type="integer">2</XPD:ATTR>
<XPD:OBJ name="OwnedElements[0]" type="UMLClass" guid="iw3rcr37H0q7LUsnJ1pOKgAA">
<XPD:ATTR name="Name" type="string">Bae, Rankyoung1</XPD:ATTR>
<XPD:REF name="Namespace">J9e+bcLT8UWj0V0+3CBnEQAA</XPD:REF>
<XPD:ATTR name="#Views" type="integer">4</XPD:ATTR>
<XPD:REF name="Views[0]">KhrtWhesJES940zMm2hLeAAA</XPD:REF>
<XPD:REF name="Views[1]">rsTdbVSS0UCho8yd1rZVDgAA</XPD:REF>
<XPD:REF name="Views[2]">jk1MzMH9g02eNnXGdAfgkAAA</XPD:REF>
<XPD:REF name="Views[3]">uBpN+trdlE2kUjLuESmL4gAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="OwnedElements[1]" type="UMLClass" guid="9zUnZZRwUkalv3A3uj6OkwAA">
<XPD:ATTR name="Name" type="string">Jung, Yoontae</XPD:ATTR>
<XPD:REF name="Namespace">J9e+bcLT8UWj0V0+3CBnEQAA</XPD:REF>
<XPD:ATTR name="#Views" type="integer">4</XPD:ATTR>
<XPD:REF name="Views[0]">qt8J5Puh40i6LWsBhcDi5wAA</XPD:REF>
<XPD:REF name="Views[1]">jxiEXdW7P0irEuL7UpZBgQAA</XPD:REF>
<XPD:REF name="Views[2]">W0p9UA3RFEGPMLpTCCcmUgAA</XPD:REF>
<XPD:REF name="Views[3]">TyOXV+wPyUqj9WLOySoADAAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
</XPD:OBJ>
</XPD:BODY>
</XPD:PROJECT>
无标题
1.
包装1
XuQeQOs7pUqu5iNMXzIipQAA
1.
类图1
J9e+bcLT8UWj0V0+3CBnEQAA
PZWSHWD/0Czibg1/CI/HgAA
2.
栗色
$00B9FFFF
596
120
108
43
iw3rcr37H0q7LUsnJ1pOKgAA
1.
Bae,兰昆1
假的
假的
iw3rcr37H0q7LUsnJ1pOKgAA
iw3rcr37H0q7LUsnJ1pOKgAA
假的
iw3rcr37H0q7LUsnJ1pOKgAA
栗色
$00B9FFFF
592
184
90
43
9Zunzhrwukalv3a3uj6okwaa
1.
郑,永泰
假的
假的
9Zunzhrwukalv3a3uj6okwaa
9Zunzhrwukalv3a3uj6okwaa
假的
9Zunzhrwukalv3a3uj6okwaa
2.
Bae,兰昆1
J9e+bcLT8UWj0V0+3CBnEQAA
4.
KHRTHESJES940ZMM2HLEAAA
rsTdbVSS0UCho8yd1rZVDgAA
JK1MZMH9G02ENXGDAFGKAAA
uBpN+trdlE2kUjLuESmL4gAA
郑,永泰
J9e+bcLT8UWj0V0+3CBnEQAA
4.
qt8J5Puh40i6LWsBhcDi5wAA
jxiEXdW7P0irEuL7UpZBgQAA
W0P9UA3RFEGPMLPTCCCMUGA
TyOXV+wPyUqj9WLOySoADAAA
虽然像“你能帮我做X吗”这样的问题通常不在SO的范围之内,但这项任务非常简单,我希望通过演示如何完成,让您了解XSLT的工作原理:
<!-- make sure to output text -->
<xsl:output method="text" />
<!-- a shallow-skip template, will continue to process children
but won't output anything itself -->
<xsl:template match="node() | @*">
<xsl:apply-templates />
</xsl:template>
<!-- match the nodes you are interested in -->
<xsl:template match="XPD:ATTR">
<!-- add value of the node, i.e. its text -->
<xsl:value-of select="." />
<!-- and a newline -->
<xsl:text>
</xsl:text>
</xsl:template>
;
如果只想匹配您提到的名称,可以按如下方式更新匹配模板:
<xsl:template match="XPD:ATTR[. = 'Bae, Rankyoung1' or . = 'Jung, Yoontae']">
<!-- same as above -->
</xsl:template>
注意:为了简洁起见,我省略了根
<xsl:template match="XPD:ATTR[. = 'Bae, Rankyoung1' or . = 'Jung, Yoontae']">
<!-- same as above -->
</xsl:template>