먼저 ndash를 당신의 XML로 선언 된 경우 어쩌면 확인하십시오. "실체"
<!ENTITY ndash "–"> <!-- en dash, U+2013 ISOpub -->
<!ENTITY mdash "—"> <!-- em dash, U+2014 ISOpub -->
명명 된 엔티티, 또한 XML 사양 내부 엔티티로 알려진, 당신은 일반적으로 당신에 대해 이야기 할 때 참조 무엇인가 DTD 또는 내부 서브 세트 (즉,. 서의 명령문의 일부로)에서 선언 한 후. 서에서 참조로 사용하십시오. XML 문서 구문 분석 중에 엔티티 참조가 표현으로 대체됩니다. 일반 영어로이 엔티티는 문서를 처리 할 때 확장되는 매크로입니다.
예 :
는
<!DOCTYPE article PUBLIC "-//NLM//DTD Journal
Publishing DTD v3.0 20080202//EN" "journalpublishing3.dtd"
[<!ENTITY ndash "–">]
see here for more info
모든 다음 대안으로 다른 것을 시도 OK 인 경우 : 당신은 내장 QtWebKit을 사용할 수 있습니다. 예 :
class MyPageLoader : public QObject
{
Q_OBJECT
public:
MyPageLoader();
void loadPage(const QUrl&);
public slots:
void replyFinished(bool);
private:
QWebView* m_view;
};
MyPageLoader::MyPageLoader()
{
m_view = new QWebView();
connect(m_view, SIGNAL(loadFinished(bool)),
this, SLOT(replyFinished(bool)));
}
void MyPageLoader::loadPage(const QUrl& url)
{
m_view->load(url);
}
void MyPageLoader::replyFinished(bool ok)
{
QWebElementCollection elements = m_view->page()->mainFrame()->findAllElements("a");
foreach (QWebElement e, elements) {
// Process element e
}
}
당신은 또한 here
이 요소를 검색 할 몇 가지 wraper 찾을 수 있습니다
MyPageLoader loader;
loader.loadPage("http://www.google.com")
클래스 사용하려면
QWebView* view = new QWebView(parent);
view.load(QUrl("http://www.your_site.com"));
QWebElementCollection elements = view.page().mainFrame().findAllElements("a");
문제는 HTML이 XML이 아니라는 것입니다. HTML 파서가 필요합니다. – Blender
그래서 어떤 도구를 사용할 수 있습니까?어쩌면 나는 HTML을 가능한 한 많이 xhtml로 변환 한 다음 XML 도구를 사용하거나 다른 것을 사용해야합니까? 이것은 단순한 헤더 오류 xml 문제로 보이지만,이 ndash는 어디에서 왔으며 어떻게 해결할 수 있습니까? – shkra19