2015-03-23 2 views
1

У меня есть экземпляр XML, который имеет множество узлов, которые я хочу удалить. Я знаю, как получить список этих узлов, но как бы удалить их? После этого мне придется добавлять новые элементы в XMLList. Не уверен, что это изменит ответ или нет. Я видел, что есть метод replace() в XMLList.Как удалить все узлы определенного типа с помощью E4X?

ActionScript:

var xmllist:XMLList = myXML.Hyperlink; 

XML:

<Document> 
    <HyperlinkURLDestination Self="HyperlinkURLDestination/http%3a//test.com#1stMultilineLink/" DestinationUniqueKey="1" Name="http://test.com#1stMultilineLink/" DestinationURL="http://test.com#1stMultilineLink/" Hidden="false"/> 
    <HyperlinkURLDestination Self="HyperlinkURLDestination/http%3a//test.com#inlinehyperlink_noshareddestination" DestinationUniqueKey="2" Name="http://test.com#inlinehyperlink_noshareddestination" DestinationURL="http://test.com#inlinehyperlink_noshareddestination" Hidden="true"/> 
    <HyperlinkURLDestination Self="HyperlinkURLDestination/http%3a//google.com#multilinehyperlink" DestinationUniqueKey="3" Name="http://google.com#multilinehyperlink" DestinationURL="http://google.com#multilinehyperlink" Hidden="false"/> 
    <Hyperlink Self="ufc" Name="is a multiline hyperlink that terminates here" Source="uf9" Visible="false" Highlight="None" Width="Thin" BorderStyle="Solid" Hidden="false" DestinationUniqueKey="1"> 
     <Properties> 
      <BorderColor type="enumeration">Black</BorderColor> 
      <Destination type="object">HyperlinkURLDestination/http%3a//test.com#1stMultilineLink/</Destination> 
     </Properties> 
    </Hyperlink> 
    <Hyperlink Self="u112" Name="hyperlink inline" Source="u111" Visible="false" Highlight="None" Width="Thin" BorderStyle="Solid" Hidden="false" DestinationUniqueKey="2"> 
     <Properties> 
      <BorderColor type="enumeration">Black</BorderColor> 
      <Destination type="object">HyperlinkURLDestination/http%3a//test.com#inlinehyperlink_noshareddestination</Destination> 
     </Properties> 
    </Hyperlink> 
    <Hyperlink Self="u137" Name="another multline hyperlink" Source="u136" Visible="false" Highlight="Outline" Width="Thick" BorderStyle="Solid" Hidden="false" DestinationUniqueKey="3"> 
     <Properties> 
      <BorderColor type="enumeration">Purple</BorderColor> 
      <Destination type="object">HyperlinkURLDestination/http%3a//google.com#multilinehyperlink</Destination> 
     </Properties> 
    </Hyperlink> 
</Document> 

ответ

1

OK. Я нашел несколько методов.

Метод 1. Использование XMLListCollection. Это, как представляется, чтобы удалить элементы из исходного XML:

var hyperlinksList:XMLList = myXML.Hyperlink; 
var myXMLListCollection:XMLListCollection = new XMLListCollection(hyperlinksList); 
myXMLListCollection.removeAll(); 

Способ 2. Удаление узлов непосредственно из XML:

delete myXML.Hyperlink; 

Затем я могу добавить их обратно с XMLListCollection.addItem():

myXMLListCollection.addItem(<Hyperlink id="mylink"/>); 
Смежные вопросы