0

我使用本地 xml 文件。当我在 Web 浏览器中删除一个项目时,它会被删除,但 xml 文件不会更改。为什么要附加这个?这是我的xml文件;

<?xml version="1.0" encoding="utf-8" ?>
<products>
    <product>
        <productId>1</productId>
        <categoryId>1</categoryId>
        <name>Azalea</name>
        <nickname>California Snow</nickname>
        <instructions>Large double.</instructions>
        <catalogNumber>S1</catalogNumber>
        <price>15.99</price>
        <photo>california_snow.jpg</photo>
    </product>

    <product>
        <productId>2</productId>
        <categoryId>1</categoryId>
        <name>Tibouchina Semidecandra</name>
        <instructions>Beautiful large royal.</instructions>
        <catalogNumber>S2</catalogNumber>
        <price>33.99</price>
        <photo>princess_flower.jpg</photo>
    </product>
      ...

我在下面写了这些代码。同时如何添加和更改它?已经非常感谢你了

<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" 
  xmlns:s="library://ns.adobe.com/flex/spark" 
  xmlns:mx="library://ns.adobe.com/flex/mx"
  skinClass="skins.HPAppSkin">

  <fx:Script>
    <![CDATA[
      protected function button1_clickHandler(event:MouseEvent):void
      {

        productCollection.removeItemAt(productGrid.selectedIndex);


      }
    ]]>
  </fx:Script>

  <fx:Declarations>
    <fx:Model id="productModel" source="data/products.xml"/>
    <s:ArrayList id="productCollection"
      source="{productModel.product}"/>
  </fx:Declarations>

  <mx:DataGrid id="productGrid" dataProvider="{productCollection}"/>
  <s:Button label="Remove Item" click="button1_clickHandler(event)"
    enabled="{productGrid.selectedIndex != -1}"/>
</s:Application>
4

2 回答 2

0

从您的 xml...我认为 ProductId 是独一无二的...您可以将您的 ProductId 添加到一个数组中...像这样:

public var removedItemArray:Array = new Array();
protected function button1_clickHandler(event:MouseEvent):void
  {

    productCollection.removeItemAt(productGrid.selectedIndex);
    removedItemArray.push(event.currentTarget.selectedItem.productId);

  }

然后您将removedItemArray 数据发送到您构建Xml 的位置,并通过删除removedItemArray 中的ProductIds 来重新构建Xml。

我希望这可能会杀死你的 Prob 兄弟!!!

于 2013-06-24T07:31:16.523 回答
0

removeItem 仅从 dataProvider 中删除项目 - 而不是从加载它的 XML 中删除。手动删除项目后,您需要相应地更新/重写 XML。

于 2013-06-23T19:56:58.397 回答