Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xml 如何使用XSLT将标记的值转换为纯文本_Xml_Xslt - Fatal编程技术网

Xml 如何使用XSLT将标记的值转换为纯文本

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

您好,这是XML(下面的副本),我必须从中提取元素中的字符串并将其附加到纯文本中。我需要提取的数据是此标记中的字符串:

<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>&#xA;</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>