0

I need to read through this xml file and count how many Representation elements there are in the first AdaptationSet, because everytime this xml is generated it can have varying amounts from 1 up to 10. I'm new to powershell and was previously using xdoc to read an xml file.

<?xml version="1.0" encoding="utf-8"?>
<MPD xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" id="111091661:1853125475:Ntsc" profiles="urn:mpeg:dash:profile:isoff-live:2011 urn:com:dashif:dash264" type="dynamic" availabilityStartTime="2015-07-09T18:47:42.8780481" publishTime="2015-07-09T18:47:41.7236461" minimumUpdatePeriod="PT3600S" minBufferTime="PT15S" timeShiftBufferDepth="PT60S" suggestedPresentationDelay="PT30S" maxSegmentDuration="PT1.000S" xsi:schemaLocation="urn:mpeg:dash:schema:mpd:2011 DASH-MPD.xsd" xmlns="urn:mpeg:dash:schema:mpd:2011">
  <Period id="1" start="PT0S">
    <AdaptationSet frameRate="30000/1001" mimeType="video/mp4" codecs="avc1.4D401E" startWithSAP="1" segmentAlignment="true">
      <SegmentTemplate timescale="30000" duration="30030" startNumber="0" media="$Bandwidth$/$Number$.m4v" initialization="$Bandwidth$/0.m4s" />
      <Representation width="314" height="210" id="v0" bandwidth="300000" />
      <Representation width="614" height="414" id="v1" bandwidth="1150000" />
      <Representation width="720" height="486" id="v2" bandwidth="2000000" />
    </AdaptationSet>
    <AdaptationSet mimeType="audio/mp4" codecs="mp4a.40.2" startWithSAP="1" segmentAlignment="true">
      <SegmentTemplate timescale="48000" duration="48048" startNumber="0" media="audio/$Number$.m4a" initialization="audio/0.m4s" />
      <Representation id="a0" bandwidth="448000" />
    </AdaptationSet>
  </Period>
</MPD>

2 Answers 2

2

You can use Select-Xml to select nodes by XPath expression:

(
    Select-Xml -Namespace @{ns='urn:mpeg:dash:schema:mpd:2011'} `
               -XPath //ns:AdaptationSet[1]/ns:Representation `
               -Path Test.xml |
    Measure-Object
).Count
Sign up to request clarification or add additional context in comments.

Comments

1

You could also do:

$Count = ([xml](Get-Content .\Test.xml)).MPD.Period.FirstChild.Representation.Count

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.