我有下面的XML文件:如何根据元素条件提取的值进行排序
<?xml version="1.0" encoding="UTF-8"?>
<gbXML xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.gbxml.org/schema xsi.xsd"xmlns="http://www.gbxml.org/schema"
temperatureUnit="C" lengthUnit="Meters" areaUnit="SquareMeters"volumeUnit="CubicMeters"
useSIUnitsForResults="true" version="0.37">
<Pared id="Pa-1" paredType="Shade">
<Name>P-S-1</Name>
<Order>
<Direction>0.000000</Direction>
<Angle>90.000000</Angle>
<Height>3.657818</Height>
<Width>15.200000</Width>
</Order>
</Pared>
<Pared id="Pa-2" paredType="Shade">
<Name>P-S-2</Name>
<Order>
<Direction>90.000000</Direction>
<Angle>90.000000</Angle>
<Height>2.598076</Height>
<Width>14.200000</Width>
</Order>
</Pared>
</gbXML>
我想提取的“高度”,每个“美嘉ID”的“宽度”值,并根据他们整理到“方向”和“角度”值。例如,在“拉帕雷德ID =‘帕-1’,如果‘方向’= 0.000000和‘角度’= 90.000000,则宽度和高度的提取的值的顺序应为:
(Width, 0.00)
(Width, Height)
(0.00, Height)
(0.00, 0.00)
我是新来XSLT和我知道如何选择宽度的价值观,并且高度:
<?xml version="1.0" encoding="UTF-8" ?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0" xmlns:gb="http://www.gbxml.org/schema">
<xsl:output method="xml" indent="yes"/>
<xsl:template match="/">
<xsl:template match= "gb:Pared">
<xsl:value-of select="gb:Order/gb:Height/>
但我不知道如何像我之前提到的这些手工排序,我会很感激,如果有人可以帮助我与此
我想要下面的输出(应用我前面提到的条件):
从拉帕雷德ID = “帕-1:
(15.200000, 0.000000)
(15.200000, 3.657818)
(0.000000, 3.657818)
(0.000000, 0.000000)
从拉帕雷德ID =” PA-2:
(0.000000, 0.000000)
(14.200000, 0.000000)
(14.200000, 2.598076)
(0.000000, 2.598076)
把它看成是壁坐标X,Y。两个墙不能有相同的坐标,高度和宽度的值就像坐标值一样。根据墙的“方向”和“角度”,这些坐标是如何配对的。 由于描述该墙的4个X,Y点,您有0.000个坐标值。因此,Pa-1和Pa-2不能有相同的坐标,但它们可能在一个坐标上相连。就像如果有两个壁比形成一个L形,0.00,0.00可以是Pa-1的右底坐标,但是如果Pa-2的情况下,0.00,0.00是左底坐标。
谢谢您的答复。是的,我只复制了XML文件的一部分原因。当它只有我在那里的两个“Pared”元素时,您的代码才有效。在完整的XML文件中,我有更多的“Pared”元素,其中一些具有相同的“方向”和“角度”值,但具有不同的“高度”和“宽度”值。我没有把所有22个Pared元素放在一起,因为我认为要理解我想要的东西会非常困惑。自从我有了一个想法以后,你的代码会有很大帮助,只需要解决我之前提到的问题。再次感谢你! – LillieG