标签: domparser

简单的HTML DOM解析器 - 发送帖子变量

我有PHP的简单HTML DOM解析器,我使用以下标记:

$html = file_get_html('http://www.google.com');
Run Code Online (Sandbox Code Playgroud)

但是,如何将帖子变量(如cURL)发送到该页面并获得响应?例如

$html = file_get_html('http://www.google.com', array("Item"=>"Value", "Item2"=>"Value2"));
Run Code Online (Sandbox Code Playgroud)

php domparser

4
推荐指数
1
解决办法
8748
查看次数

试图用DOMParser解析html字符串的麻烦

这里是片段:

html  = "<!doctype html>";
html += "<html>";
html += "<head><title>test</title></head>";
html += "<body><p>test</p></body>";
html += "</html>";

parser = new DOMParser();

dom = parser.parseFromString (html, "text/html");
Run Code Online (Sandbox Code Playgroud)

尝试执行这些行时出现错误:

错误:组件返回失败代码:0x80004001(NS_ERROR_NOT_IMPLEMENTED)[nsIDOMParser.parseFromString]

我试着弄清楚发生了什么,但代码似乎是正确的,我在网上搜索,我来到这里没有任何线索.

你以前遇到过这种失败吗?如果是的话,这个bug隐藏在哪里?

javascript xml-parsing domparser

4
推荐指数
1
解决办法
8526
查看次数

javascript,如何在使用带有text/html的DOMparser时删除<html> <head> <body>元素

代码

var txt = '<div id="hi">fe</div><div id="h2">fe</div><div id="hj">fe</div>'
var parser = new DOMParser();
var temp_node = parser.parseFromString(txt, "text/html").documentElement;
console.log(temp_node)
Run Code Online (Sandbox Code Playgroud)

这段代码产生了完整的html文档,其中包括

<html><head></head><body>
<div id="hi">fe</div>
<div id="h2">fe</div>
<div id="hj">fe</div>
</body></html>
Run Code Online (Sandbox Code Playgroud)

如果我只想要这个<div id="hi">fe</div><div id="h2">fe</div><div id="hj">fe</div>部分怎么办?我该怎么做?

并且,如果我想要附加所有节点,有没有办法在没有循环的情况下执行它?

parentNode.appendChile(temp_node) // add the entire code
parentNode.appendChile(temp_node.firstElementChild.nextElementSibling) // add the parent <body> and the other layers inside
parentNode.appendChild(temp_node.firstElementChild.nextElementSibling.childNodes) // doesn't do the trick, it complains about not being a "node", I guess I'd need an "appendChilds" function that allows to add many nodes at once …
Run Code Online (Sandbox Code Playgroud)

html javascript xml dom domparser

4
推荐指数
1
解决办法
1239
查看次数

DOMParser - 获取元素样式

我正在尝试获取使用 DOMParser 解析的元素的样式属性。不过,2 个 console.log 都是空的。知道为什么会发生这种情况吗?

<div id='foobar'>
  <style>
  .xl496
    {
    color:#336699;
    }
  </style>

  <table>
   <tr>
    <td class='xl496'>Test:</td>
   </tr>
  </table>
</div>
Run Code Online (Sandbox Code Playgroud)
var data = document.getElementById("foobar");

var parser = new DOMParser();
var doc = parser.parseFromString(data.innerHTML, "text/html");
var cols = doc.getElementsByTagName("tr");
var col = cols[0];
var tds = col.getElementsByTagName("td");
var td = tds[0];

console.log(getComputedStyle(td).getPropertyValue("color"));
console.log(td.style.color);
Run Code Online (Sandbox Code Playgroud)

html javascript parsing domparser

4
推荐指数
1
解决办法
5576
查看次数

使用 DOMParser 解析 HTML 是否可以避免 XSS?

我在代码中使用DOMParser,如下所示:

\n
 html`${this.domParser.parseFromString(this.richText, \'text/html\').body.children}`\n
Run Code Online (Sandbox Code Playgroud)\n

阅读文档后,我有点担心这Cross site Scripting attacks仍然是可能的,因为正如文档所述:

\n
\n

您可以使用 XMLSerializer 接口执行相反的操作\xe2\x80\x94将 DOM 树转换为 XML 或 HTML 源\xe2\x80\x94。

\n
\n

然而它也声明它返回

\n
\n

Document 或 XMLDocument,具体取决于 mimeType 参数。

\n
\n

那么使用这种方法是否有助于保护您的网站免受攻击XSS

\n

javascript xss domparser

4
推荐指数
2
解决办法
4735
查看次数

类型错误:无法读取未定义的 NodeJS dom 解析器的属性“readFileSync”

尝试将 Dom-Parser 与 Discord.js 一起使用。无法从其他地方找到帮助。第 15 行出错fs.readFile 我在 fs 工作时也遇到了很多问题。首先它没有定义,然后在初始化之前无法运行,刚刚修复了这个问题(我希望)

// Discord stuff.
const Discord = require('discord.js');
const client = new Discord.Client();
const config = require('./config.json');
const token = config.token;

// DomParser
var DomParser = require('dom-parser');
var parser = new DomParser();
var data = fs.readFileSync(filepathHidden);

// Other requirements
var fs = require('fs');


// when getting online. 
client.once('ready', () => {
    console.log('WAHAHAHA IM ALIVE!');
}),

fs.readFile('https://url.com)', 'utf8', function(err, html){
    if (!err){
      var dom = parser.parseFromString(html);
  
      console.log(dom.getElementsByClassName('new_solution_box_title').innerHTML);
    }
  })

client.login(token);
Run Code Online (Sandbox Code Playgroud)

javascript node.js domparser discord

4
推荐指数
1
解决办法
2万
查看次数

JAXB中UnMarshaller和Parser之间的区别

任何人都可以在JAXB中解释UnMarshaller和Parser之间的区别.我读过像UnMarshaller那样用来从XML文档中检索值.Parser也做了同样的事情.有人请解释一下差异.

例如:考虑下面的示例zoo.xml

<zoo>
 <zooName>Vandalur Zoo</zooName>
  <zooId>12321</zooId>
  <animals>
   <animal>
    <animalName>Lion</animalName>
  <animalType>Wild</animalType>
</animal>
Run Code Online (Sandbox Code Playgroud)

使用UnMarshaller,

JAXBContext jaxbContext = JAXBContext
      .newInstance("com.javapapers.xml.jaxb");
  Unmarshaller unmarshaller = jaxbContext.createUnmarshaller();
  JAXBElement<?> zoo = (JAXBElement<?>) unmarshaller
      .unmarshal(new FileInputStream("zoo.xml"));
  ZooInfo zooInfo = (ZooInfo) zoo.getValue();
Run Code Online (Sandbox Code Playgroud)

使用解析器:

File fXmlFile = new File("zoo.xml");
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
Document doc = dBuilder.parse(fXmlFile);
Run Code Online (Sandbox Code Playgroud)

xml jaxb unmarshalling xml-parsing domparser

3
推荐指数
1
解决办法
2218
查看次数

DOMParser将<script>标记附加到<head>/<body>但不执行

我试图通过DOMParser将字符串解析为完整的HTML文档,然后用处理过的节点覆盖当前页面.该字符串包含完整的标记,包括<!doctype>,<html>,<head><body>节点.

// parse the string into a DOMDocument element:
var parser = new DOMParser();
var doc = parser.parseFromString(data, 'text/html');

// set the parsed head/body innerHTML contents into the current page's innerHTML
document.getElementsByTagName('head')[0].innerHTML = doc.getElementsByTagName('head')[0].innerHTML;
document.getElementsByTagName('body')[0].innerHTML = doc.getElementsByTagName('body')[0].innerHTML;
Run Code Online (Sandbox Code Playgroud)

这是因为它成功地获取了已解析的HTML节点并在页面上呈现它们; 但是,解析后的字符串中<script><head><body>节点中存在的任何标记都无法执行= [.直接使用html标签进行测试(与head/ 相反body)会产生相同的结果.

我也尝试过使用.appendChild()而不是.innerHTML()改变:

var elementHtml = document.getElementsByTagName('html')[0];

// remove the existing head/body nodes from the page
while …
Run Code Online (Sandbox Code Playgroud)

javascript domparser

3
推荐指数
2
解决办法
2328
查看次数

Java DocumentBuilder - XML 文件中的错误缩进

我尝试使用 DocumentBuilder 用 Ja​​va 编写一个简单的 XML 文件。我希望 XML 文件看起来像这样:

<outer>
     <inner>
          <element name="WEB"/>
          <element name="WEB"/>
          <element name="WEB"/>
     </inner>
</outer>
Run Code Online (Sandbox Code Playgroud)

但它生成它是这样的:

<outer>
     <inner>
          <element name="WEB"/>
          <element name="WEB"/>
     <element name="WEB"/>
     </inner>
</outer>
Run Code Online (Sandbox Code Playgroud)

为什么第三个元素与其他两个元素的缩进不同?注意:我再次读取 XML 文件以模拟项目中的一种方法,其中读取 XML 文件,添加一个元素并将其保存到 XML 文件。这是我的代码:

import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.xml.sax.SAXException;

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.transform.*;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
import java.io.File;
import java.io.IOException;

public class main {
    private static String FILEPATH = "/tmp/xmltest.xml";
    private static DocumentBuilderFactory docFactory;
    private static DocumentBuilder docBuilder;
    private static TransformerFactory …
Run Code Online (Sandbox Code Playgroud)

java xml indentation domparser

3
推荐指数
1
解决办法
2135
查看次数

无法将解析后的字符串附加到 dom

我正在使用 DOMParser 来解析带有 html 标签的字符串,以将其附加到另一个 dom 节点上

  window.addEventListener("load",carga);
  var origen = document.getElementById('origen');
  var destino = document.getElementById('destino');

  function carga(e){
    origen.addEventListener('dragstart',function(e){
        e.dataTransfer.setData("Text",origen.outerHTML);
    },false);

    destino.addEventListener('dragover',function(e){
        e.preventDefault();
    });


    destino.addEventListener('drop',function(e){
        e.preventDefault();
        console.log( e.dataTransfer.getData("Text"));
        var parser = new DOMParser();
        dragged = parser.parseFromString( e.dataTransfer.getData("Text") , "text/html");
        console.log(dragged);
        destino.appendChild(dragged);
    },false);
  }
Run Code Online (Sandbox Code Playgroud)

拖动变量的内容是:

<section draggable="true" id="origen" style="height: 50px; width: 50px; border-color: green; border-style: solid;">origen</section>
Run Code Online (Sandbox Code Playgroud)

html javascript dom appendchild domparser

2
推荐指数
1
解决办法
3112
查看次数