【问题标题】:Change the Property of XML Tag更改 XML 标签的属性
【发布时间】:2018-09-03 15:02:59
【问题描述】:

我在重命名 xml 文件中标记的属性时遇到问题。 假设我有一个像这样的 xml:

<? xml version = "1.0" encoding = "UTF-8" ?>
<Category name="" count = 4>
    <value id=0>Ali</value>
    <value id=1>Adnan</value>
    <value id=2>Yousaf</value>
    <value id=3>Ahmad</value>
</Category>
<Category name="" count = 5>
    <value id=0>America</value>
    <value id=1>China</value>
    <value id=2>Pakistan</value>
    <value id=3>Canada</value>
    <value id=4>India</value>
</Category>

现在我想在 Jquery 中更新 xml 的名称。有没有办法做到这一点。我想要这种类型的实现:

xmlDoc = $.parseXML(xml),
    $xml = $(xmlDoc);
    $($xml).each(function () {
        alert($(this).find("Category[name]").setValue("ABC"));
    });

谢谢。

【问题讨论】:

  • 您的 XML 结构无效。
  • 您能否提出任何解决方案。

标签: javascript jquery xml parsing xml-parsing


【解决方案1】:

我想这就是你的答案。

XML Validator

var xml = '<?xml version = "1.0" encoding = "UTF-8" ?> <Categories>     <Category name="" count ="4">       <value id="0">Ali</value>       <value id="1">Adnan</value>         <value id="2">Yousaf</value>        <value id="3">Ahmad</value>     </Category>     <Category name="" count ="5">       <value id="0">America</value>       <value id="1">China</value>         <value id="2">Pakistan</value>      <value id="3">Canada</value>        <value id="4">India</value>     </Category> </Categories>'

xmlDoc = $.parseXML(xml);
$xml = $(xmlDoc);
$xml.context.children[0].children[0].setAttribute("name","ali")

【讨论】:

    【解决方案2】:

    将您的 XML 更新为只有一个根,并将 id 属性更新为 id="0" 而不是 id=0,如下所示。

    <?xml version="1.0" encoding="utf-8"?>
      <Categories>
        <Category name="" count ="4">
          <value id="0">Ali</value>
          <value id="1">Adnan</value>
          <value id="2">Yousaf</value>
          <value id="3">Ahmad</value>
        </Category>
        <Category name="" count ="5">
          <value id="0">America</value>
          <value id="1">China</value>
          <value id="2">Pakistan</value>
          <value id="3">Canada</value>
          <value id="4">India</value>
        </Category>
      </Categories>
    

    JQuery 下面会更新 XML 中的所有 name 属性

    $(document).ready(function() {
      var str = '<?xml version="1.0" encoding="utf-8"?><Categories><Category name="" count ="4"><value id="0">Ali</value><value id="1">Adnan</value><value id="2">Yousaf</value><value id="3">Ahmad</value></Category><Category name="" count ="5"><value id="0">America</value><value id="1">China</value><value id="2">Pakistan</value><value id="3">Canada</value><value id="4">India</value></Category></Categories>';
      var xmlDoc = $.parseXML(str);
      var xmlData = $(xmlDoc);
      $(xmlData).each(function() {
        $(this).find("Category").attr('name', 'ABC');
      });
    
      // For test only to see the change
      console.log((new XMLSerializer()).serializeToString($(xmlData)[0]));
    });
    &lt;script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"&gt;&lt;/script&gt;

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-30
      • 2020-05-16
      相关资源
      最近更新 更多