Altova Mailing List Archives>Archive Index >microsoft.public.xml Archive Home >Recent entries >Thread Prev - Re: using For each witin xslt [Thread Next] Re: using For each witin xsltTo: NULL Date: 3/3/2007 4:37:00 PM
Made more changes that appeared to be wrong. I am lost at this point.
<xslt:if test="@CName = 'Win32_NetworkAdapter'">
<xslt:variable name="ActiveNetAdaptor"
select="Class[Property[@PName='IPEnabled:Win32_NetworkAdapterConfiguration'
and Value='true']]" />
<IPAddress>
<xslt:value-of
select="$ActiveNetAdaptor/Property[@PName='IPAddress:Win32_NetworkAdapterConfiguration"]/@Value"
/>
<IPAddress>
</xslt:if>
I trimmed down the xml for submission purposes. I only setup with two
adapters. The second one is the valid adapter with an addresses. This is
only a snippet of te xml. Based on the above xslt code I would exppect only
two write to teh file when adapter is true.
<Class CName="Win32_NetworkAdapter" CInstance="1">
<Property PName="Description" Value="Intel 82558-based Integrated"
PInstance="0" Index="0" DType="8"/>
<Property PName="MACAddress" Value="00:D0:B7:7A:26:8F" PInstance="0"
Index="0" DType="8"/>
<Property PName="IPAddress:Win32_NetworkAdapterConfiguration" Value="N/A"
PInstance="0" Index="0" DType="8"/>
<Property PName="IPEnabled:Win32_NetworkAdapterConfiguration" Value="false"
PInstance="0" Index="0" DType="11"/>
<Property PName="IPSubnet:Win32_NetworkAdapterConfiguration" Value="N/A"
PInstance="0" Index="0" DType="8"/>
</Class>
<Class CName="Win32_NetworkAdapter" CInstance="2">
<Property PName="Description" Value="SMC EZ Card 10/100 (SMC1211TX)"
PInstance="0" Index="0" DType="8"/>
<Property PName="MACAddress" Value="00:E0:29:56:24:1B" PInstance="0"
Index="0" DType="8"/>
<Property PName="IPAddress:Win32_NetworkAdapterConfiguration"
Value="10.160.10.2" PInstance="0" Index="0" DType="8"/>
<Property PName="IPEnabled:Win32_NetworkAdapterConfiguration" Value="true"
PInstance="0" Index="0" DType="11"/>
<Property PName="IPSubnet:Win32_NetworkAdapterConfiguration"
Value="255.255.255.0" PInstance="0" Index="0" DType="8"/>
</Class>
"Big D" <BigDaddy@n...> wrote in message
news:O%23vmCZdXHHA.1220@T......
> Tried doing the following but still getting stylesheet errors when
> running:
>
>
> <xslt:if test="@CName = 'Win32_NetworkAdapter'">
>
> <xsl:variable name="Win32_NetworkAdapter"
> select="Class[Property[@PName='IPEnabled:Win32_NetworkAdapterConfiguration'
> and Value='true']]" />
>
> <xsl:value-of
> select="$ActiveNetAdaptor/Property[@PName='MACAddress"]/@Value" />
> <xsl:value-of
> select="$ActiveNetAdaptorProperty[@PName='IPAddress:Win32_NetworkAdapterConfiguration"]/@Value"
> />
> </xslt:if>
>
>
> "Big D" <BigDaddy@n...> wrote in message
> news:uWWQXdcXHHA.2640@T......
>> OK, I appogise as I have been struggling.....Your right I do not need a
>> For each. I thought that I would.
>>
>> Below is my xslt code
>>
>> <xslt:if test="@CName = 'Win32_NetworkAdapter'">
>> <IPAddress>
>> <xslt:value-of
>> select="Property[@PName='IPAddress:Win32_NetworkAdapterConfiguration']/@Value"
>> />
>> </IPAddress>
>> </xslt:if>
>>
>>
>> My result in my xml file is as follows:
>>
>> <IPAddress>N/A</IPAddress>
>> <IPAddress>N/A</IPAddress>
>> <IPAddress>N/A</IPAddress>
>> <IPAddress>10.176.152.2</IPAddress>
>> <IPAddress>N/A</IPAddress>
>> <IPAddress>N/A</IPAddress>
>> <IPAddress>N/A</IPAddress>
>> <IPAddress>N/A</IPAddress>
>>
>> I I have multiple entries and maybe I am using the code you provided
>> wrong. I know what needs to be done to eliminate the additonal xml tags
>> that are not IpAddresses.
>>
>> The below property name when the value is "True" is the only time i
>> should grab the IPAddress and MAC.(Left MAC field out for simplicity) I
>> know the field below when true is the adapters information I need and
>> should probably exist outside the tag <IPAddress>
>>
>> "IPEnabled:Win32_NetworkAdapterConfiguration"
>>
>> '''Modified with psuedo code but unsure of how to incorprate into
>> stylesheet code.
>>
>> <xslt:if test="@CName = 'Win32_NetworkAdapter'">
>>
>> 'gET the adapter Property value if the device in the enabled
>> one.(IPEnabled:Win32_NetworkAdapterConfiguration)
>> <xslt:if test="IPEnabled:Win32_NetworkAdapterConfiguration" =
>> True> 'When true inventory the adapter for IPAddress and MAC, otherwise
>> goto the next one.
>> <IPAddress>
>> <xslt:value-of
>> select="Property[@PName='IPAddress:Win32_NetworkAdapterConfiguration']/@Value"
>> />
>> </IPAddress>
>>
>> </xsl:if>
>> </xslt:if>
>>
>> Any help is definently appreciated as I did npot think this would be as
>> difficult.
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>> "Anthony Jones" <Ant@y...> wrote in message
>> news:eA8Svf$WHHA.4076@T......
>>>
>>> "Big D" <BigDaddy@n...> wrote in message
>>> news:%23CfEmW$WHHA.2212@T......
>>>> I only put two instances of the Win32_NetworkAdapter but typically see
>>>> at
>>>> most 8. Basically I need to interate through all adapters AND
>>>>
>>>> IF IPEnabled:Win32_NetworkAdapterConfiguration = True
>>>> Grab the Ipaddress and Macaddress properties. 'When true
>>>> that
>>>> means the adapter is the active one.
>>>>
>>>> Else If IPEnabled:Win32_NetworkAdapterConfiguration =False
>>>> 'Do nothing and move on until there are no adapters.
>>>> End If
>>>>
>>>>
>>>> Normally any inactive adapter will be false and is not adapter with the
>>>> IP
>>>> infomration.
>>>>
>>>
>>> If you are going to do nothing with the adapters where IPEnabled is
>>> false
>>> why to you need to iterate at all. Surely what you are saying is you
>>> need
>>> to select the Class where IPEnabled:Win32_NetworkAdapterConfiguration =
>>> True
>>> ??
>>>
>>> <xsl:variable name="ActiveNetAdaptor"
>>> select="Class[Property[@PName='IPEnabled:Win32_NetworkAdapterConfiguration'
>>> and Value='true']]" />
>>>
>>> <xsl:value-of
>>> select="$ActiveNetAdaptor/Property[@PName='MACAddress"]/@Value" />
>>> <xsl:value-of
>>> select="$ActiveNetAdaptorProperty[@PName='IPAddress:Win32_NetworkAdapterConf
>>> iguration"]/@Value" />
>>>
>>>
>>>
>>>
>>>
>>>>
>>>> I hope this is clearer.
>>>>
>>>> Thanks again for your help!
>>>> "Anthony Jones" <Ant@y...> wrote in message
>>>> news:e$WqlZ%23WHHA.996@T......
>>>> >
>>>> > "Big D" <BigDaddy@n...> wrote in message
>>>> > news:uZc4xY6WHHA.996@T......
>>>> >> I have an xml file and the data in the xml file is WMI information.
>>>> >> I
>>> am
>>>> >> using a stylesheet(xslt file) to get the data I actually need from
>>>> >> the
>>>> > file
>>>> >> that has all kinds of information. Where I have run into a problem
>>>> >> is
>>>> >> when
>>>> >> WMI properties is having multipe instances. For example, the
>>>> >> Win32_NetworkAdapter can have up to eight instances or more. I do
>>>> >> not
>>>> >> want
>>>> >> to extract all 8 instances of the adapters but rather the only
>>>> >> adater I
>>>> > care
>>>> >> about is the one with the MAC address and IP Aaddress.(Active
>>>> >> Adapter)
>>>> > This
>>>> >> information can be in any instance of the eight(1-8) and I am not
>>>> >> able
>>> to
>>>> >> key off of a instance.
>>>> >>
>>>> >> How can I within my stylesheet do the logic to look grab the
>>> information
>>>> >> needed where the IPAddress and MAC are not null. All other adapters
>>>> >> are
>>>> >> Null.
>>>> >>
>>>> >> Pseudo code of what i want to acomplish
>>>> >>
>>>>
>>>>> -------------------------------------------------------------------------
>>> -
>>>> > ----
>>>> >> select each Win32_NetworkAdapter instance and where
>>>> >> "IPEnabled:Win32_NetworkAdapterConfiguration" Value="true" IS TRUE.
>>>> >>
>>>> >> IF true Then get the following values within that instance....
>>>> >>
>>>> >> IPAddress:Win32_NetworkAdapterConfiguration" Value="10.112.14.5"
>>>> >> "MACAddress:Win32_NetworkAdapterConfiguration"
>>> Value="00:90:FB:0B:83:ED"
>>>>
>>>>> -------------------------------------------------------------------------
>>> -
>>>> > ----
>>>> >
>>>> > Hmm your psuedo code does match your text description above. Are you
>>>> > saying
>>>> > the criteria for selection is that the class needs to have:-
>>>> >
>>>> > 1) IPAddress and MACAddress
>>>> > OR
>>>> > 2) IPAddress or MACAddress
>>>> > OR
>>>> > 3) only one will be IPEnabled anyway so fetch that one and get the
>>> values
>>>> > of IPAddress and MACAddress
>>>> >
>>>> > I'll take 3 let me know otherwise.
>>>> >
>>>> >>
>>>> >> <xsl:for-each
>>>> >>
>>>> > select="Property[@PName='IPAddress:Win32_NetworkAdapterConfiguration']">
>>>> >> </xsl:for-each>
>>>> >
>>>> > <xsl:for-each
>>>> >
>>>> >
>>> select="Class[Property[@PName=IPEnabled:Win32_NetworkAdapterConfiguration'
>>>> > and Value='true']]">
>>>> > </xsl:for-each>
>>>> >
>>>> > Given the context is the root node holding the Class elements the
>>>> > above
>>>> > returns all Class elements that have a property with a PName
>>>> > attribute =
>>>> > IPEnabled and a Value attribute = true.
>>>> >
>>>> >
>>>> >>
>>>> >>
>>>> >>
>>>> >> Example, XML file
>>>> >> <Class CName="Win32_NetworkAdapter" CInstance="0">
>>>> >> <Property PName="AdapterType" Value="Ethernet 802.3" PInstance="0"
>>>> > Index="0"
>>>> >> DType="8"/>
>>>> >> <Property PName="Description" Value="Intel(R) PRO/100 VM Network
>>>> > Connection"
>>>> >> PInstance="0" Index="0" DType="8"/>
>>>> >> <Property PName="Index" Value="0" PInstance="0" Index="0"
>>>> >> DType="19"/>
>>>> >> <Property PName="Installed" Value="true" PInstance="0" Index="0"
>>>> >> DType="11"/>
>>>> >> <Property PName="MACAddress" Value="00:90:FB:0B:83:ED" PInstance="0"
>>>> >> Index="0" DType="8"/>
>>>> >> <Property PName="Manufacturer" Value="Intel" PInstance="0" Index="0"
>>>> >> DType="8"/>
>>>> >> <Property PName="ServiceName" Value="E100B" PInstance="0" Index="0"
>>>> >> DType="8"/>
>>>> >> <Property PName="TimeOfLastReset" Value="02/25/2007 22:44:35"
>>>> > PInstance="0"
>>>> >> Index="0" DType="101"/>
>>>> >> <Property PName="DefaultIPGateway:Win32_NetworkAdapterConfiguration"
>>>> >> Value="10.112.14.1" PInstance="0" Index="0" DType="8"/>
>>>> >> <Property PName="DHCPEnabled:Win32_NetworkAdapterConfiguration"
>>>> >> Value="false" PInstance="0" Index="0" DType="11"/>
>>>> >> <Property PName="DNSHostName:Win32_NetworkAdapterConfiguration"
>>>> >> Value="VSSRES001403" PInstance="0" Index="0" DType="8"/>
>>>> >> <Property PName="Index:Win32_NetworkAdapterConfiguration" Value="0"
>>>> >> PInstance="0" Index="0" DType="19"/>
>>>> >> <Property PName="IPAddress:Win32_NetworkAdapterConfiguration"
>>>> >> Value="10.112.14.5" PInstance="0" Index="0" DType="8"/>
>>>> >> <Property PName="IPEnabled:Win32_NetworkAdapterConfiguration"
>>>> >> Value="true"
>>>> >> PInstance="0" Index="0" DType="11"/>
>>>> >> <Property PName="IPSubnet:Win32_NetworkAdapterConfiguration"
>>>> >> Value="255.255.255.0" PInstance="0" Index="0" DType="8"/>
>>>> >> <Property PName="MACAddress:Win32_NetworkAdapterConfiguration"
>>>> >> Value="00:90:FB:0B:83:ED" PInstance="0" Index="0" DType="8"/>
>>>> >> <Property PName="ServiceName:Win32_NetworkAdapterConfiguration"
>>>> >> Value="E100B" PInstance="0" Index="0" DType="8"/>
>>>> >> </Class>
>>>> >>
>>>> >> <Class CName="Win32_NetworkAdapter" CInstance="1">
>>>> >> <Property PName="Description" Value="RAS Async Adapter"
>>>> >> PInstance="0"
>>>> >> Index="0" DType="8"/>
>>>> >> <Property PName="Index" Value="1" PInstance="0" Index="0"
>>>> >> DType="19"/>
>>>> >> <Property PName="Installed" Value="true" PInstance="0" Index="0"
>>>> >> DType="11"/>
>>>> >> <Property PName="TimeOfLastReset" Value="02/25/2007 22:44:35"
>>>> > PInstance="0"
>>>> >> Index="0" DType="101"/>
>>>> >> <Property PName="DefaultIPGateway:Win32_NetworkAdapterConfiguration"
>>>> >> Value="N/A" PInstance="0" Index="0" DType="8"/>
>>>> >> <Property PName="Description:Win32_NetworkAdapterConfiguration"
>>>> >> Value="RAS
>>>> >> Async Adapter" PInstance="0" Index="0" DType="8"/>
>>>> >> <Property PName="DHCPEnabled:Win32_NetworkAdapterConfiguration"
>>>> >> Value="false" PInstance="0" Index="0" DType="11"/>
>>>> >> <Property PName="Index:Win32_NetworkAdapterConfiguration" Value="1"
>>>> >> PInstance="0" Index="0" DType="19"/>
>>>> >> <Property PName="IPAddress:Win32_NetworkAdapterConfiguration"
>>> Value="N/A"
>>>> >> PInstance="0" Index="0" DType="8"/>
>>>> >> <Property PName="IPEnabled:Win32_NetworkAdapterConfiguration"
>>>> > Value="false"
>>>> >> PInstance="0" Index="0" DType="11"/>
>>>> >> <Property PName="IPSubnet:Win32_NetworkAdapterConfiguration"
>>> Value="N/A"
>>>> >> PInstance="0" Index="0" DType="8"/>
>>>> >> <Property PName="ServiceName:Win32_NetworkAdapterConfiguration"
>>>> >> Value="AsyncMac" PInstance="0" Index="0" DType="8"/>
>>>> >> </Class>
>>>> >>
>>>> >>
>>>> >
>>>> >
>>>>
>>>>
>>>
>>>
>>
>>
>
>
| ||||||
| Company | Legal | Press | Partners | Careers | Sitemap | Contact Us | Altova Blog | Mobile | Full Site | |||
|
